2011-06-27 69 views
5

Matlab有一個很好的屬性,標量函數(比如sin)可以在數組上工作,在數組的任何元素上操作並返回一個數組作爲結果。Matlab - 使用參數爲數組中的每個元素運行函數?

我有一個標量函數f(x,p)其中x是一個標量,p是一個參數(實際上是一個參數數組)。給定一個固定參數p,我希望在一個數組A上運行f(x,p)。在像Ruby語言就應該是這樣的:

A.collect{|x| f(x,p)} 

但我不知道該怎麼做在Matlab爲接受參數,不僅是從我想要操作的陣列的標量函數。

+0

可能重複[Map function in MATLAB?](http://stackoverflow.com/questions/983163/map-function-in-matlab) – Amro

回答

7

MATLAB的等價物是提供一個只有一個參數的函數句柄,並將它發送到arrayfun

arrayfun(@(x) f(x, p), A) 

例如,

A = 1:10; 
p = 2; 
arrayfun(@(x) x.^p, A) 

注意,anonymous function創建閉合,捕捉的p值。

相關問題