Matrix 使用matlab计算输入矩阵与其他两个矩阵之间的最近距离 如果我们考虑3个变量:x=1;y=2;z=3; 要知道x是否比z更接近y,我们必须执行以下计算: a=x-y; % -1 a=a.^2; % (-1).^2 = 1 b=x-z; %-2 b=b.^2; % (-2).^2 =4 %find the minimum d=min(a,b); % 1

Matrix 使用matlab计算输入矩阵与其他两个矩阵之间的最近距离 如果我们考虑3个变量:x=1;y=2;z=3; 要知道x是否比z更接近y,我们必须执行以下计算: a=x-y; % -1 a=a.^2; % (-1).^2 = 1 b=x-z; %-2 b=b.^2; % (-2).^2 =4 %find the minimum d=min(a,b); % 1,matrix,matlab,Matrix,Matlab,因此,我们注意到x比z更接近y 现在,让我们考虑3个矩阵X、Y和Z而不是变量。这是相同的概念,但我使用的是矩阵而不是变量。 回想一下,我想知道x是更接近y还是更接近z 顺便说一下,我尝试编写以下matlab代码: clear all; close all; clc; %I have 3 matrices x, y and z x=[1 4 1 ; 4 5 3 ; 7 3 9] y=[3 6 5 ; 6 5 7 ; 3 2 3] z=[2 6 5 ; 3 7 6 ; 2 7 6] %Com

因此,我们注意到x比z更接近y

现在,让我们考虑3个矩阵X、Y和Z而不是变量。这是相同的概念,但我使用的是矩阵而不是变量。 回想一下,我想知道x是更接近y还是更接近z

顺便说一下,我尝试编写以下matlab代码:

  clear all;
close all;
clc;

%I have 3 matrices x, y and z
x=[1 4 1 ; 4 5 3 ; 7 3 9]
y=[3 6 5 ; 6 5 7 ; 3 2 3]
z=[2 6 5 ; 3 7 6 ; 2 7 6]

%Compute the distance between x and y
a= x-y;
%squaring this distance
a_squared=a.^2;

%Compute the distance between x and z
b=x-z;
%squaring the distance
b_squared=b.^2;

%So to compute the closest distance among a_squared and b_squared, i think
%that i should compute the minimum.

d=min(a_squared,b_squared); % in this case, we get a new matrix which is the minimum. So how can i know if this d belongs to the cluster y or z ?
在这种情况下,我们得到一个新的矩阵,它是最小值。那么我怎么知道这个d是属于y簇还是z簇呢?那么关于d的值,如何知道d是属于y还是z?换句话说,我怎么知道x是更接近y还是更接近z??我需要你的帮助和意见。任何帮助都将不胜感激


提前感谢。

距离可以定义为距离

对于矩阵的距离,可以根据使用的距离定义多个距离。Matlab函数可以计算不同的范数,包括2范数和Frobenius范数

我建议你从2-norm开始,看看这是否有助于你做你想做的事情

示例代码:矩阵x和y之间的距离:


这个问答可能对你有兴趣,你的问题相当于你考虑矩阵之间的距离的问题。例如,看一看。一旦您选择了一个,您就必须实现它,并且它已经完成:。感谢您的回答:,那么在这个链接中计算的距离将是一个整数值还是一个矩阵?如果它是一个整数值,那么这对我来说将是一个很好的答案和解决方案:。请我需要你的回答:请你给我写一个至少两种距离计算方法的matlab代码的答案。例如,在这个有用的链接中写入的d1、d2..@Christina,不是一个整数,而是一个标量,在本例中是一个实数。您可以通过norm的第二个参数来选择它们。我假设是这样,但我把向量的2-范数和矩阵的2-范数搞混了。我更正了我的答案。矩阵的2-范数实际上是由矩阵投影产生的向量的最大2-范数,或矩阵的最大奇异值。Frobenius范数是简单的推广,只需将矩阵视为向量并计算其2范数。正确,对于矩阵,我们有1范数、2范数、Inf范数和Frobenius范数。希望它能满足您的需要。如果您使用向量2范数定义向量或点距离,这与欧几里德距离相同。矩阵2-范数是向量2-范数到矩阵的推广,因此从这个意义上讲,它类似于欧几里得矩阵。
dxy = norm(x - y, 2);