как оценить многопараметрическую функцию - PullRequest
0 голосов
/ 07 апреля 2019

Рассмотрим функцию f(y1,y2,y3,y4,z1)=(-(z1^3)/(y3^2))(3(y2-y1+y3^(-1)-z1/10)^2+(1/5)(y2-y1+y3^(-1)-(z1)/10))-y4 с 5 переменными. Когда я ставлю f(1,1,1,1,1), я нахожу ответ, но когда я пишу f(v), в котором v=(1,1,1,1,1) Matlab не работает. Как я могу это сделать (вторым способом)?

1 Ответ

1 голос
/ 07 апреля 2019

Вы можете написать функцию-обертку, которая будет принимать вектор в качестве входного аргумента и «распаковывать» этот вектор перед вызовом вашей функции.

f(y1,y2,y3,y4,z1) = (-(z1^3)/ ...;               % your function
fv(v) = f(v(1),v(2),v(3),v(4),v(5));

Или, альтернативно, заставьте f ссылаться на элементы входного вектора, используя соответствующие индексы:

f(v) = (-(v(5)^3)/(v(3)^2)); ... % etc.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...