У меня есть функция, которая принимает переменное количество входов, скажем, myfun(x1,x2,x3,...).
myfun(x1,x2,x3,...)
Теперь, если у меня есть входы, хранящиеся в массиве структуры S, я хочу сделать что-то вроде myfun(S.x1,S.x2,...)Как мне это сделать?
myfun(S.x1,S.x2,...)
Вы можете сначала преобразовать свою структуру в массив ячеек, используя STRUCT2CELL , а затем использовать его для создания списка из нескольких входов.поля в S определены в порядке, в котором передаются входные данные.Чтобы проверить, что поля расположены в правильном порядке, вы можете запустить fieldnames на S, который возвращает ячейку с именами полей, соответствующими значениям в C.
S
fieldnames
C
Что-то, что можно добавить к ответу Джонаса: на самом деле вы можете опустить структуру и перейти прямо к ячейке, которая затем раскрывается в список аргументов функции:
c = {125, 3}; nthroot(c{:})