Я искал сеть за пару утра и ничего не нашел, надеюсь, что вы сможете помочь.Постоянная анонимная функция matlab возвращает только одно значение вместо массива
У меня есть анонимная функция, как этот
f = @(x,y) [sin(2*pi*x).*cos(2*pi*y), cos(2*pi*x).*sin(2*pi*y)];
, которая должна быть оценена на множестве точек, что-то вроде
x = 0:0.1:1;
y = 0:0.1:1;
w = f(x',y');
Теперь, в приведенном выше примере все работает отлично, результат w - матрица 11x2, в каждой строке правильное значение f (x (i), y (i)). Проблема возникает, когда я изменить функцию, чтобы иметь постоянные значения:
f = @(x,y) [0, 1];
Теперь, даже с входами массива, как и прежде, я получаю только из массива 1х2, как ш = [0,1]; , хотя, конечно, я хочу иметь ту же структуру, что и раньше, т. Е. Матрицу 11x2.
Я понятия не имею, почему Matlab делает это ...
EDIT 1 К сожалению, я думал, что это было довольно ясно из того, что я написал в оригинальный вопрос, но я вижу, что некоторые из вас просят, так что здесь является уточнением: я хочу, чтобы снова иметь матрицу 11x2, так как я питаю функцию массивами с 11 элементами. Это означает, что я ожидаю получить результат точно так же, как в первом примере, только с измененными значениями в нем: матрица с 11 строками и двумя столбцами, с только значениями 0 в первом столбце и только значениями 1 во втором, поскольку для все x (i) и y (i) ответом должен быть вектор [0,1]. Это означает, что я рассчитывать на:
w = [0 1
0 1
0 1
...
0 1]
кажется довольно естественным для меня ...
Почему вы ожидаете '@ (х, у) [0, 1]', чтобы вернуться еще, но любое другое что '[0,1] '????? – Shai
Я уточнил вопрос с уточнением – Filo
Я понятия не имею, почему это занижено. Я думаю, что это вполне разумный вопрос, когда кто-то, приезжающий в Матлаб, формирует более математический фон. –