В Matlab, для функции с несколькими входами, как использовать один вход как несколько входов? - PullRequest
3 голосов
/ 21 января 2011

У меня есть функция, которая принимает переменное количество входов, скажем, myfun(x1,x2,x3,...).

Теперь, если у меня есть входы, хранящиеся в массиве структуры S, я хочу сделать что-то вроде myfun(S.x1,S.x2,...)Как мне это сделать?

Ответы [ 2 ]

4 голосов
/ 21 января 2011

Вы можете сначала преобразовать свою структуру в массив ячеек, используя STRUCT2CELL , а затем использовать его для создания списка из нескольких входов.поля в S определены в порядке, в котором передаются входные данные.Чтобы проверить, что поля расположены в правильном порядке, вы можете запустить fieldnames на S, который возвращает ячейку с именами полей, соответствующими значениям в C.

0 голосов
/ 15 октября 2012

Что-то, что можно добавить к ответу Джонаса: на самом деле вы можете опустить структуру и перейти прямо к ячейке, которая затем раскрывается в список аргументов функции:

c = {125, 3};
nthroot(c{:})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...