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



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

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

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

在这种情况下,矢量化意味着以一次接受多个输入的方式重写函数。假设这是不可能的,for 循环是最好的选择。

最简单的方法是arrayfun

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

最新更新