如何在MATLAB中将函数应用于矩阵内的向量?

时间:2016-02-16 02:38:41

标签: matlab

假设我有一个函数f(vec),它将大小为3的向量(数组)作为输入。我有一个大小为M的矩阵100 x 100 x 3。有没有办法可以以某种方式将f应用于M的每个单元格,输出大小为N的矩阵100 x 100?例如,N(10,20)等于

f( M(10,20,1), M(10,20,2), M(10,20,3) )

显然我可以使用for循环,但我觉得这应该是可矢量化的。

2 个答案:

答案 0 :(得分:3)

此上下文中的矢量化意味着以一次接受多个输入的方式重写函数。假设这是不可能的,for循环是最好的可能性。

答案 1 :(得分:1)

最简单的方法是arrayfun

arrayfun(@(x,y,z) f(x,y,z), M(10,20,1), M(10,20,2), M(10,20,3) , 'uni', 0)