我有一个大小为[m x n]
的数组A,一个函数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
答案 0 :(得分: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) );