如果我有向量[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中执行此操作?
答案 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