声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1128|回复: 4

[编程技巧] matlab找台阶遇到的问题

[复制链接]
发表于 2008-9-17 10:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我写了一个找台阶起始点的程序,运行却出错
>>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));
&#160; &#160;&#160; &#160;&#160;&#160;if(varT<=threshold){
&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;loop=0;
&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;s=i;
&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;}
&#160; &#160;&#160; &#160;&#160;&#160;i=i+1;
&#160; &#160;&#160; &#160;&#160;&#160;if(i>=len1){
&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160; loop=0;
&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160; s=-1;
&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160; }
&#160; &#160;&#160; &#160;&#160;&#160;}
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-9-17 10:37 | 显示全部楼层
:@Q :@Q
I'm so sorry!
我没写过MATLAB程序,刚找了半天,终于找到了
原来是MATLAB不支持{}  应该用end就好了
发表于 2008-9-17 10:43 | 显示全部楼层

回复 沙发 somelee 的帖子

呵呵,确实是的,我看了就以为你是用C语言写的程序呢!
你多熟悉一下matlab 的编程规则
 楼主| 发表于 2008-9-17 11:47 | 显示全部楼层
嗯,谢谢楼上提醒。 今天丢人丢大了
发表于 2008-9-17 13:16 | 显示全部楼层

回复 楼主 somelee 的帖子

建议用diff和find两个函数试试,不用循环语句。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 02:56 , Processed in 0.068224 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表