我有一个Matlab函数z = foo(x, y)
,它将两个列向量作为输入并输出一个标量。现在我想将此函数应用于两个矩阵A(维度n * d1)和B(维度n * d2)并生成d1 * d2矩阵,使得output(i, j) = foo( A(:, i), B(:, j) )
。它应该基本上类似于将corr
函数应用于两个矩阵的行为。
我尝试了this link中的解决方案,但在第一个答案中遇到了同样的问题,而第二个解决方案中的meshgrid
步骤太慢了。
有什么建议吗?非常感谢提前!
答案 0 :(得分:0)
如果foo
接受矩阵,则:
%Find dimensions
dA = size(A,2);
dB = size(B,2);
%Generate a list of all possible column pairs for the two matrices
indA = ceil((1:dA*dB)/dA);
indB = mod(0:dA*dB, dB)+1;
X = A(:, indA);
Y = B(:, indB);
z = foo(X,Y)
然后你可能能够将z
重塑为你想要的东西