Я пытаюсь интегрировать функцию, которая включает в себя векторное умножение. Однако я все время получаю сообщение об ошибке.Интегрируя произведение вектора в Matlab
Предполагается, что alphas - это некоторый вектор. и рассмотрим следующий фрагмент кода:
g = @(x)prod(x.*alphas);
integral(g,-10,10);
Это дает следующее сообщение об ошибке:
Error using .*
Matrix dimensions must agree.
Error in @(x)prod(x.*alphas)
Теперь, наивной точки зрения. g - скалярная функция. Если x - это некоторое число, то g (x) - это номер.
Я совершенно новичок в Matlab, и я не могу полностью понять проблему. Любая помощь была бы полезной. Спасибо.
Спасибо! каков был бы правильный способ определить * g *, то? – Cain
@Cain Что вы хотите сделать? Какая у вас функция, которая имеет разные альфы? Можете ли вы опубликовать еще один вопрос, объясняющий, что вы хотите сделать? –
@Cain Как насчет этого? 'g = @ (x) prod (x (:) * alphas, 2); интеграл (г, -10,10, 'arrayvalued', правда) '? Обратите внимание, что кажется, что '' arrayvalued '== true' остановит векторную оценку, поэтому вы можете просто использовать 'prod (x * alphas)'. –