我已經搜索過並且有很多這類問題的答案,提示arrayfun,bsxfun等函數。由於尺寸不匹配,我無法解決問題(並且可能是對於MATLAB如何處理匿名函數句柄的根本誤解)。在MATLAB中應用於數組的函數句柄
我有一個以上的變量的通用功能手柄:
f = @(x,y) (some function of x, y)
啓發式,我想定義就像
g = @(x) sum(f(x,1:3))
更確切地說新功能手柄,下面究竟是幹什麼的我需要,但是寫出更大的陣列很麻煩(比如1:10而不是1:3):
g = @(x) f(x,1)+f(x,2)+f(x,3)
我想是這樣
g = @(x) sum(arrayfun(@(y) f(x,y), 1:3))
但爲x的大小超過了1x1的,這並不爲工作不久。
在此先感謝。
這難道不是向量化'F'的選項,因此,它也接受陣列輸入'y'而不只是'x'?否則'x'允許的尺寸是多少? –
我給出的答案是基於提供的有限信息。如果您提供'f'的實現,則可能有更好的解決方案,因爲可能以某種方式矢量化輸出。 – TroyHaskin