现有组数据(t,x),t,x分别为同长度的向量,我想写一段程序,检查t的值是否有重复,然后把重复的后一个以及相对应的x值去掉,但是这样t长度就会减少,而写循环的时候定义的最大值就不对了。
请问如何能解决此问题,谢 ...
hettyw 发表于 2009-10-7 16:07


正好下班回来帮你看看

n=length(t);
k = 0;
for i=1:n-1
    for j=i+1:n
        if t(i)==t(j)
            t(j)=[];
            x(i)=(x(i)+x(j))/2;
            x(j)=[];
            k = k + 1;
        end
        if (n < k + j || n == k + j)
            break;
        end
    end
    if (i == n - k - 1 || i > n - k - 1)
        break;
    end

end

健壮性不知道,你查查有没有bug吧~急着出门不好意思啦,有问题晚上回来再说。
CSUCHEN--追逐你的梦想

猪qoko如是说:

忠于自己心中道德的人其实是最自私的,因为她\他可以为了道德而什么都不顾。

TOP

那你在x(j)=[]  ;
的后面再加一个n=length(t); 可以吗?
liujiayukob 发表于 2009-10-7 16:35


循环变量不能这样改的~~还是会保持之前那个~
CSUCHEN--追逐你的梦想

猪qoko如是说:

忠于自己心中道德的人其实是最自私的,因为她\他可以为了道德而什么都不顾。

TOP