Chcę spliczyć wektor do wywołania funkcji, ale nie mogę znaleźć sposobu, aby to zrobić. Czy to możliwe?Matlab --- splice wektor na argumenty dla wywołania funkcji
Aby rozwinąć na tym, co mam na myśli, że mamy wektor x
długości n
i funkcję f
że trwa n
argumenty. Chcę być w stanie zadzwonić pod numer f(x(1), x(2), ..., x(n))
, dzwoniąc na coś takiego, jak f(x)
lub f(splice(x))
. Jeśli x
byłaby macierzą komórek zamiast wektora, wywołanie f(x{:})
przyniosłoby pożądany rezultat; wydaje się uzasadnione, że będzie odpowiednik, gdy x
jest wektorem.
Mam nadzieję, że jakiś operator lub funkcja, której mi brakuje. Mogę zadzwonić pod numer y = num2cell(x)
, a następnie f(y{:})
, ale to nie jest to, czego szukam.
Czy 'x (:)' nie działa? Lub jeśli jest to wektor kolumnowy, użyj 'x (:) ''. – Thor
Trasa "num2cell" jest dokładnie tym, czego powinieneś szukać. – Jonas
@ Jonas Wystarczająco uczciwe, ponieważ to rozwiązanie jest proste. Ale myślę, że to trochę głupie, że muszę określić zmienną tymczasową (i, w związku z tym, zawartość zmiennej jest kopiowana dodatkowy czas), aby to zrobić. Dlaczego ta funkcja istnieje dla macierzy komórek, ale nie dla (prawdopodobnie bardziej powszechnej) tablicy numerycznej (tj. "Mat" w "matlab")? Tak czy owak, dlatego pytałem: wydawało mi się, że jest to funkcja, która prawdopodobnie jest obsługiwana, ale której w jakiś sposób mi brakowało. – zroth