Использование вектора в качестве входных данных для анонимной функции в MATLAB - PullRequest
0 голосов
/ 08 октября 2018

Допустим, у меня есть анонимная функция с n входами, f (x1, x2 x3, ... xn) и вектором длины n, скажем vector = [1, 2, 3, ... n].Есть ли способ заставить MATLAB принимать отдельные значения вектора в качестве соответствующих входных данных для f?Например:

f = @(x,y,z) x+y+z;
vector = [1,2,3];
f(vector)
ans = 
       6

Я хочу использовать это в большем файле сценария, где я не буду знать количество входных данных, но вместо этого программа будет работать по мере того, как она будет работать на основедлина (вектор).

Для пояснения приведенный выше код эмулирует то, что я хотел бы, чтобы произошло.Если вы поместите это прямо в MATLAB, вы получите:

Not enough input arguments.

1 Ответ

0 голосов
/ 08 октября 2018

Преобразовать вектор в массив ячеек, используя num2cell, и из этого создать список , разделенный запятыми :

>> f = @(x,y,z) x+y+z;
>> vector = [1,2,3];
>> cell_array = num2cell(vector);
>> f(cell_array{:})
ans =
     6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...