使用以下命令在matlab中给出矩阵A
:>
3 1 4 5 7 8
和另一个矩阵
B
,可以将其称为某些参考点(每行是要与A
的每一行进行比较的参考点),
1 1 1 2
我需要计算矩阵
C
,例如
4 5 25 18 85 72
C
的每一行是A
的每一行与B
的行之间的差(L2平方的平方)。在MATLAB中执行此操作的一种可能方法是,首先创建一个零矩阵C
,C = zeros(5,2)
,然后使用双for循环填充适当的值。 MATLAB中还有其他有效/简单的方法吗?
在下面找到代码段
C = zeros(5,2)
for i = 1:rows
for j = 1:rows2
C(i,j) = (norm(A(i,:)-B(j,:)))^2
end
end
给定矩阵矩阵A具有:3 1 4 5 7 8和另一个矩阵B,可以将其称为某些参考点(每一行是要与A的每一行进行比较的参考点),...。 。
也许您可以像下面一样尝试bsxfun
一种类似于ThomasIsCoding's的解决方案,但是可以推广到任意数量的维度(该答案要求A
和B
恰好有2列才能使用复数表示形式)。在这里,我们使用第3个数组维度而不是复杂的值来完成同一件事: