| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 673 人关注过本帖
标题:求助循环方面的问题,有代码
只看楼主 加入收藏
mujingjie
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-9-17
收藏
 问题点数:0 回复次数:0 
求助循环方面的问题,有代码
遇到一个新问题,先描述如下:
自定义了一个函数,其功能是可以对输入的序列求出其拐点,然后以拐点为界,将序列一分为二。该部分代码已正确写出了。
问题是在主函数中,我需要判断分成的这两部分的长度是否小于一个已给定的值,若不小于,将调用上面自定义的函数继续分裂数据,直到所有的序列的长度都小于这个已给定的值,问题就出现在这个循环中,有兴趣的话我可以把自己写的代码发出来,希望热心人可以指出我的错误,或者提出更好的解决办法,先谢过了。

MinLength=4;%时间序列的最小分裂长度阈值。
S=[ 2 3 2 4 6 7 9 2 1 3]
D=Segment(S,MinLength)
D{1,:}
D{2,:}%查看一下D中的元素具体内容。
w=1;
Q=cell(2,1000);
for k=1:4
    if(length(D{1,k})>0)%把非零元素即不需要再分裂的序列存入D的第三行。
        
        Q{1,w}=D{1,k};%Q第1行用来存不需要再分裂的序列,每次的都按顺序加到后面。能实现吗????、、
        D{1,k}=[];%把D的第1行元素清空。方便下次循环时继续用,而不至于重复造成混乱。
        w=w+1;
    end
end

for m=1:4
        if(length(D{2,m})>0)
        Q{2,m}=D{2,m};
        D{2,m}=[];%把D的第2行元素清空。方便下次循环时继续用,而不至于重复造成混乱。
        
        for k=1:4
            if(length(D{1,k})>0)%把非零元素即不需要再分裂的序列存入D的第三行。
        
                Q{1,w}=D{1,k};%Q第1行用来存不需要再分裂的序列,每次的都按顺序加到后面。能实现吗????、、
                D{1,k}=[];%把D的第1行元素清空。方便下次循环时继续用,而不至于重复造成混乱。
                w=w+1;
            end
        end
        [D Sd t]=Segment(Q{2,m},MinLength)
    end
end
%错误了,主要是length(D{2,m}),一次循环后会冲掉以前的,想办法解决啊??????????????
可以第一次调用自定义的函数,但以后循环就不行了。


[D Sd t]=Segment(S,MinLength)是我自定义的函数,已经编写正常了,其中D是cell数组第一行存小于分裂阈值的序列,第二行存需要再次分裂的序列。问题就出在这个循环上了
搜索更多相关主题的帖子: 代码 
2009-09-17 13:29
快速回复:求助循环方面的问题,有代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029988 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved