matlab找台阶遇到的问题
我写了一个找台阶起始点的程序,运行却出错>>findS(Idata,50,30)
??? Error: File: findS.m Line: 12 Column: 12
The expression to the left of the equals sign is not a valid target for an assignment.
其中Idata是一个一维数组,它的时域波形是台阶状,我就想通过这个程序找到某一个台阶的起始点(任意一个即可)
出上面那个错我实在不知道怎么处理,
他说我这一行有错,varT=var(a(i:i+n)); 可如果我把这个复制到MATLAB中直接运行,他就可以运行成功,望大侠指点
function s=findS(a,n,t)
threshold=t;
len1=length(a);
len2=len/3;
len3=len1/5;
var1=var(a);
loop=1;
i=1;
cnt=0;
varT=0;
while(loop>0){
varT=var(a(i:i+n));
if(varT<=threshold){
loop=0;
s=i;
}
i=i+1;
if(i>=len1){
loop=0;
s=-1;
}
} :@Q :@Q
I'm so sorry!
我没写过MATLAB程序,刚找了半天,终于找到了
原来是MATLAB不支持{}应该用end就好了
回复 沙发 somelee 的帖子
呵呵,确实是的,我看了就以为你是用C语言写的程序呢!你多熟悉一下matlab 的编程规则 嗯,谢谢楼上提醒。 今天丢人丢大了
回复 楼主 somelee 的帖子
建议用diff和find两个函数试试,不用循环语句。
页:
[1]