2016-12-12 15 views
0

我想生成50個函數:xk'= - x_ {k-1} * x_ {k-2} -x_ {k},其中k = 1,2,... 50。有沒有「聰明」的方式來做到這一點,而無需手動寫入。例如,如何生成有沒有什麼辦法可以用Matlab中的同一個公式生成50個函數?

x5'= - x_ {4} * x_ {3} -x {5} .... x30'= - x_ {29} * x_ {28} -x { 30}

爲從1到50所有k,但我想X1,...,X50是符號變量,因而,以後我可以調用它們像這樣X34(15)= ..

感謝您的幫助

+0

請參閱:[匿名函數](https://www.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html) – excaza

+0

是的,我知道這一點,這是我的問題的第二部分的答案。我的問題是如何用50個變量生成50個函數。 –

+3

你不需要產生50個函數,你可以用2個輸入產生1個函數。 – excaza

回答

0

正如Suever所說,使用一個匿名函數來完成,它需要2個輸入不是1!

xkFunc = @(x,k) - x{k} * x{k-1} - x{k} 

您還沒有規定的輸入是什麼,但是從你的符號,我假設x是細胞和k是用於索引的整數。在這種情況下,這將起作用。如果x是一個向量/矩陣(不是細胞),然後使用普通支架代替

xkFunc = @(x,k) - x(k) * x(k-1) - x(k) 

你說,你要能夠調用x5x6,...而不是你會打電話 xkFunc(x,5)例如。

MATLAB在將@後的括號內的變量替換爲隨後的輸入,並在公式中的任何位置調用時替換。

相關問題