簡體   English   中英

在循環中將輸出添加到匿名函數

[英]add outputs to anonymous function in loop

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

我想如果您有一組線性方程組,則可以使用矩陣來構造它,然后可以通過向矩陣和/或其附帶的右側向量添加行和列來自由地包含新的運算。

如果您確實要使用匿名函數,請說您的函數是非線性函數,那么我建議您研究一下匿名函數數組 例如,

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”中包含的內容,

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

如果您不熟悉單元陣列,可以在此處閱讀其用法。

同樣,您要實現的目標可能有所不同。 希望這對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM