使用具有动态变量的函数

时间:2013-03-17 11:04:19

标签: matlab loops

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

1 个答案:

答案 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) );

顺便说一句
最好not to use i as a variable name in matlab