在MATLAB中,我想将函数应用于矩阵A和中的每对列向量B.我知道必须有一种有效的(非for)方式来做到这一点,但我无法弄明白.该函数将输出标量.
小智 7
尝试
na = size(A,1);
nb = size(B,1);
newvector = bsxfun(@(j,k)(func(A(j,:),B(k,:))),1:na,(1:nb)');
Run Code Online (Sandbox Code Playgroud)
bsxfun在1:na和(1:nb)'上执行单例扩展.在这种情况下,最终结果是func将应用于从A和B绘制的每对列向量.
请注意,bsxfun可能很棘手:它可能要求应用的函数本身支持单例扩展.在这种情况下,它可以完成你想要的工作.