我有一个大小为 A 的数组[m x n]、一个函数f(array, a, b, c)和一个变量数组
[a1 b1 c1; a2 b2 c2; ... ak bk ck]。
我想得到一个数组:
[f(A, a1, b1, c1); f(A, a2, b2, c2); ... f(A, ak, bk, ck)]
在 MATLAB 中实现这一点而不使用繁琐的循环结构是一种优雅的方式吗?
for i = 1:k
B(i) = f(A, a(i), b(i), c(i));
end
怎么用arrayfun?
让我们P成为k带有参数的 3 矩阵[a1 b1 c1;...' ak bk ck]然后
B = arrayfun( @(a,b,c) f( A, a, b, c), P(:,1), P(:,2), P(:,3) );
BTW
最好不要i在 matlab 中用作变量名。