2010-08-31 51 views
1

我有一個包含在匿名方程中的方程組。我不想在創建函數時定義所有方程式,而是希望在for循環的每個步驟中添加一個方程式。這可能嗎?將輸出添加到循環中的匿名函數

+0

你是指匿名函數?你是什​​麼意思「匿名方程中包含的方程組」? – Mikhail 2010-09-01 06:37:53

+1

你能否提供你現在的代碼,以便我們看到你想要做的事情? – Marc 2010-09-01 15:30:28

回答

5

我想如果你有一組線性方程組,你可以使用一個矩陣來構造它,然後你可以通過向矩陣和/或其伴隨的右側向量添加行和列來自由地包含新操作。

如果你真的想要使用匿名函數,比如說你的函數是非線性的,那麼我建議你去查看arrays of anonymous functions。例如,

A = cell(3,1);   % Preallocate a 3 by 1 cell array 
for ii = 1:3 
    A{ii} = @(x) x^2+ii; % Fill up the array with anonymous functions 
end 

現在,如果你檢查什麼包含在單元陣列「A」'S,

A = @(x)x^2+ii 
    @(x)x^2+ii 
    @(x)x^2+ii 

不要擔心的「II」顯示屏,而不是循環變量的實際數量正如我們之前給出的那樣,MATLAB已經在內部用這些值替換它們。在當前函數範圍中更改'ii'也不會影響'A'中的值。

因此, A{1}(2) = 5A{2}(2) = 6A{3}(2) = 7

如果你不熟悉的電池陣列,你可以在它的使用here閱讀起來。

再一次,你試圖實現的可能是不同的。我希望這對你有用。

相關問題