假设我有一个函数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)