somelee 发表于 2008-9-17 10:12

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;
                }
        }

somelee 发表于 2008-9-17 10:37

:@Q :@Q
I'm so sorry!
我没写过MATLAB程序,刚找了半天,终于找到了
原来是MATLAB不支持{}应该用end就好了

无水1324 发表于 2008-9-17 10:43

回复 沙发 somelee 的帖子

呵呵,确实是的,我看了就以为你是用C语言写的程序呢!
你多熟悉一下matlab 的编程规则

somelee 发表于 2008-9-17 11:47

嗯,谢谢楼上提醒。 今天丢人丢大了

w89986581 发表于 2008-9-17 13:16

回复 楼主 somelee 的帖子

建议用diff和find两个函数试试,不用循环语句。
页: [1]
查看完整版本: matlab找台阶遇到的问题