Я применяю функцию (которая является константой ) к массиву, я думал, что он вернет массив, в котором все значения были равны единице, но он возвращает только 1.
q=@(x) 1 q([1:n].*10) ans = 1
Я думал, что он вернется: ans = [1,1,1,1,1, ...]
Да, ваша функция является константой, но у вас нет 'x' на ваших входах, поэтому она возвращает значение константы для любого входа. Попробуйте:
q=@(x) x.*0+1
В этой форме ваша функция будет просто отображать входные данные в любой форме (вектор, матрица или константа), это должно дать желаемый результат:)
q нужен способ понять размер вывода.
q=@(x) zeros(size(x))+1; q(1:10)