2

我有一个大小为 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
4

1 回答 1

1

怎么用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 中用作变量名

于 2013-04-18T08:45:01.103 回答