這是一個非常簡單的問題,雖然我不知道該如何處理它。如何從矩陣函數定義一個新函數?
我定義的函數f(x,y)
將返回一個,比方說,2×2矩陣。我想定義一個新的功能g
,其值是f(x,y)
的(1,1)元素。我天真地嘗試[email protected](x,y)(f(x,y))(1,1)
,當然失敗了。請幫幫我!
這是一個非常簡單的問題,雖然我不知道該如何處理它。如何從矩陣函數定義一個新函數?
我定義的函數f(x,y)
將返回一個,比方說,2×2矩陣。我想定義一個新的功能g
,其值是f(x,y)
的(1,1)元素。我天真地嘗試[email protected](x,y)(f(x,y))(1,1)
,當然失敗了。請幫幫我!
您可以使用該功能getfield
讓我們來定義f(x,y)
返回一個2x2矩陣
f = @(x,y) [1*x 2*y;3*x 4*y].^2 ;
然後讓我們定義一個函數g11(x,y)
其返回元素{1,1}爲f(x,y)
。 (和一個額外的功能g21
其返回{2,1}元素)
g11 = @(x,y) getfield(f(x,y) , {1,1}) ;
g21 = @(x,y) getfield(f(x,y) , {2,1}) ;
現在:
>> f(3,4)
ans =
9 64
81 256
>> g11(3,4)
ans =
9
>> g21(3,4)
ans =
81
對於沒有臨時變量字段賦值的更看中的使用,讀取所有在this question
它還可以幫助!謝謝! – Andy 2014-12-05 15:15:57
最簡單的方法漂亮的答案得到一個矩陣的(1,1)元素只是調用'F(1,1)'。功能並不是真的需要。 – eigenchris 2014-12-05 14:56:49
但'f(1,1)'將返回一個2 * 2矩陣。 – Andy 2014-12-05 14:59:28
對不起,我意識到你叫你的函數'f'。如果你有一個矩陣'M',你可以使用'M(1,1)'得到它的'(1,1)'元素。 – eigenchris 2014-12-05 15:02:47