假设我有一个函数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循环,但我觉得这应该是可矢量化的。
答案 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)