在 MATLAB 中,我想对矩阵 A
和 B
中的每一对列向量应用一个函数。我知道必须有一种有效的(非 for
)方法来执行此操作,但我无法弄清楚。该函数将输出一个标量。
最佳答案
尝试
na = size(A,1);
nb = size(B,1);
newvector = bsxfun(@(j,k)(func(A(j,:),B(k,:))),1:na,(1:nb)');
bsxfun
对 1:na 和 (1:nb)' 进行单例展开。在这种情况下,最终结果是 func 将应用于从 A 和 B 中提取的每对列向量。
请注意 bsxfun 可能很棘手:它可能要求应用的函数本身支持单例扩展。在这种情况下,它将可以完成您想要的工作。
关于matlab - 将函数应用于 MATLAB 中两个矩阵中的每一对列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9813554/