如何将函数应用到每个元素中

时间:2017-07-16 13:42:25

标签: matlab matrix

如果我有向量[1,2,3,4],我希望在每个元素中使用函数f来获取

[f(1),f(2),f(3),f(4)]

如果我有一个矩阵mat

>> mat=magic(3)
mat =
     8     1     6
     3     5     7
     4     9     2

我希望得到

     f(8)     f(1)     f(6)
     f(3)     f(5)     f(7)
     f(4)     f(9)     f(2)

有没有简单的方法在matlab中执行此操作?

1 个答案:

答案 0 :(得分:1)

<强>解决方案

使用MATLAB的arrayfun函数如下:

arrayfun(f,mat)

示例

mat = magic(3); %defines input
f = @(x) x.^2; %defines f (f is the square function)
arrayfun(f,mat); %applies f on mat

<强>结果

mat =

 8     1     6
 3     5     7
 4     9     2

arrayfun(f,mat)=

64     1    36
 9    25    49
16    81     4