计算MATLAB中另一个矩阵与另一个矩阵之间的差矩阵

问题描述 投票:1回答:2

使用以下命令在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中执行此操作的一种可能方法是,首先创建一个零矩阵CC = 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的每一行进行比较的参考点),...。 。

arrays matlab matrix distance euclidean-distance
2个回答
0
投票

也许您可以像下面一样尝试bsxfun


0
投票

一种类似于ThomasIsCoding's的解决方案,但是可以推广到任意数量的维度(该答案要求AB恰好有2列才能使用复数表示形式)。在这里,我们使用第3个数组维度而不是复杂的值来完成同一件事:

© www.soinside.com 2019 - 2024. All rights reserved.