Używam symbolicznego zestawu narzędzi do generowania funkcji matlab. Ale liczba danych wejściowych do wygenerowanej funkcji różni się w zależności od liczby obiektów, których potrzebuję (na przykład liczby przełączników). 2 i 3 włącza wygenerowany wygląd funkcja lubi to:Wywołanie funkcji z różną liczbą parametrów w Matlab
y = fun(a1,a2,b1,b2)
y = fun(a1,a2,a3,b1,b2,b3)
W skrypcie za pomocą tej funkcji ustanowię wektory tych parametrów:
a = [a1 a2 ...]
co chcę, albo wywołać funkcję wygenerowany bezpośrednio lub utwórz funkcję otoki, więc nie muszę zmieniać instrukcji połączenia, gdy zmieniam liczbę przełączników. Aby jeszcze bardziej skomplikować ten problem, zmienne te są zmiennymi ACADO. Oznacza to, że operacja macierzowa i elementarna jest niedozwolona (tj. Cała operacja matematyczna musi być wykonana za pomocą skalarów, a równania w symbolicznym przyborniku muszą być zapisane dla skalarów).
Nie sądzę, że rozwiązuje mój pytanie, ponieważ nie mogę wykonać funkcji z różną liczbą parametrów, ponieważ jest generowany przez symboliczny toolbox (http://www.mathworks.se/help/symbolic/matlabfunction.html) Próbowałem użyć vargin, ale nie mogę go uruchomić: f = @ (x, y) (x + y); vargin {1} = 1; vargin {2} = 2; f (vargin) –
Odpowiedź udzielona przez @angainor to prawdopodobnie sposób, w jaki powinieneś pójść. –