У меня есть функция F, как это
function z=f(x,y)
if(x<1 & y <1)
z=0;
else
z=1;
end
end
и скрипт
x=0:0.1:2;
y=0:0.1:2;
[X,Y]=meshgrid(x,y);
Z=f(X,Y);
mesh(X,Y,Z);
При запуске этого скрипта я получил следующие ошибки:
Z должен быть матрицей, а не скаляром или вектором.
Это потому, что x и y - это два массива, а не скалярное значение. Скрипт можно запустить, если я изменю
function f looks like this:
function z = f( x,y )
for i=1:size(x,2)
for j=1:size(y,2)
if(x(i)<1 & y(j)<1)
z(i,j)=0;
else
z(i,j)=1;
end
end
end
end
Проблема в том, что новая функция работает намного медленнее, чем первая. Я не знаю, есть ли какой-либо оператор сравнения, применяемый для массивов в этом случае, например оператор ". *", Используемый в этой функции
function z=f(x,y)
z=x.*y;
end
Большое спасибо.