Matlab 计算数据帧内的最小欧几里德距离

Matlab 计算数据帧内的最小欧几里德距离,matlab,Matlab,我有一个数据框 x=[1;2;3;4;5] 我想找到最小欧几里德距离ED。我是手工做的,因为我不擅长编程。我希望有人能帮助我 手动方式是: assign the first data to a variable A A=1; assign the second data to a variable b B=2; assign the third data to variable C and so on until the last data. find the ED D1=norm(A-B);

我有一个数据框

x=[1;2;3;4;5]
我想找到最小欧几里德距离ED。我是手工做的,因为我不擅长编程。我希望有人能帮助我

手动方式是:

assign the first data to a variable A
A=1;
assign the second data to a variable b
B=2;
assign the third data to variable C and so on until the last data.
find the ED
D1=norm(A-B);
find the second ED
D2=norm(B-C);
D3=norm(C-D);

find the minimum ED
minxED=min(D1,D2,D3)
请帮帮我。我想把问题扩大一点

现在,数据帧的矩阵形式为[3000 X 13]

如何计算3000行合计每行的ED,并计算其平均值

之前,我使用了下面给出的答案

y = min(abs(x(2:end) - x(1:end-1);
y1= min(abs(z(2:end) - z(1:end-1);
y2=min(abs(s(2:end) - s(1:end-1);
然后将答案分配给变量ans

an1=[y,y1,y2];
then find the average
avr=mean(an1);

如何做到这一点?非常感谢

如果我正确地回答了你的问题,那么你似乎想要这样的东西:

minxED = min(abs(x(2:end) - x(1:end-1)));

它获取向量x中相邻元素之间的L1距离,然后找到最小距离。

非常感谢@Ayb4btu。。。愿上帝保佑你。@user3471465如果答案有助于你解决问题,别忘了将其标记为已接受。谢谢嗨,Benoit_11,谢谢你的提醒。但是我真的很抱歉,你能告诉我如何接受答案吗?因为我试着点击答案左边的up错误,但它需要15个信誉。thanks@user3471465-单击上下箭头下方的复选标记图标。首先,切勿在MATLAB中使用变量ans。其次,如果最小ED出现在数据1和4之间,该怎么办。你比较第一秒、第二秒、第三秒等的方法将失败。如果你认为,我所说的是正确的,那么我有一个更好的方法来做同样的事情。我不明白你想在你的问题中增加什么。如果你能更详细地解释一下你想要实现的目标,这会有所帮助。谢谢@Ayb4btu..实际上,我想做的是找到每个数据帧的平均最小ED。每个数据帧实际上是一组语音样本。我需要找到3000个样品的最小ED和。然后求总样本最小ED的平均值。关于展开的问题,x是样本1,z是样本2,s是样本3。所以我真的需要找到每一个的最小ED。我希望这个解释能使问题更清楚。请帮助methanks@Parag,我会记下“ans”。@user3471465不幸的是,这并没有让它变得更清楚。也许从欧几里德距离开始。