帮忙看一个简单的matlab代码

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:03:14
xnms.txt是一列数据,我想用以下代码使得数列中如果紧靠的两个数据值一样,那就把前一个数据减去0.0001,这样一来,这个数列中所有靠近的两个数据值不一样。
代码如下,请帮忙看看哪里有问题啊,运行不起来,谢谢!!
clc;clear;
ms=load('xnms.txt');
n=length(ms);
a=1;
for b=1:1:n-1
if ms(a)=ms(a+1)
ms(a)=ms(a)-0.0001;
end
a=a+1;
end
ms

如果是紧靠的,取a、b两个变量来进行控制是多余的,只取(例如)a便可以了:
clc;clear;
ms=load('xnms.txt');
n=length(ms);
for a=1:1:n-1
if ms(a)==ms(a+1) % 不是m(a)=m(a+1)
ms(a)=ms(a)-0.0001;
end
end
ms

一般地,如果不只是紧靠的,而是全部均要求不相同:
clc;clear;
ms=load('xnms.txt');
n=length(ms);
for a=1:n-1
for b=a+1:n
if ms(a)==ms(b) % "="改为“==”
ms(a)=ms(a)-0.0001;
end
end
ms

if ms(a)=ms(a+1)
这里出错了,应该是:
if ms(a)==ms(a+1)

有两个等号

for b=1:1:n-1 %n-1最好加上括号
ms(a)=ms(a+1) %相等用==