huihust 发表于 2007-10-25 09:02

内循环貌似没有意义。

zhangnan3509 发表于 2007-10-25 10:22

回复 #16 huihust 的帖子

function sum1 = freq(x)
sum1=0
l=length(x);
indices=[]
for i=1:l
   m=x(i);

indices = find(x==m)
sum1(i)=length(indices)
   
end

我把内循环去了,但是还是死机。我觉得1024个数据的运算量也不大啊,我想知道为什么就总过不去

[ 本帖最后由 eight 于 2007-10-25 10:23 编辑 ]

eight 发表于 2007-10-25 10:26

先测试一下数据量少一点的时候会否死机,如果问题依旧,就设置断点调试一下吧

[ 本帖最后由 ChaChing 于 2009-11-21 16:38 编辑 ]

花如月 发表于 2007-10-25 10:26

虽然用过多次hist,不过研究没有这么深入。跟着学习:@P

zhangnan3509 发表于 2007-10-25 18:11

我搞出来了,但是不是MATLAB的函数,基本上还是C的办法,请大家继续关注啊我想用简单的函数

花如月 发表于 2007-10-25 18:20

回复 #20 zhangnan3509 的帖子

把你的办法弄上来瞧瞧

zhangnan3509 发表于 2007-10-25 18:53

=size(b);
t=cols*rows;
N=ones(1,t);

k=0;
fori=1:cols
    for j=1:rows
      k=k+1;
      a(k)=b(i,j);
    end
end

for i=1:t-1

    if i==1
       for j=i+1:t
          if a(j)==a(i)
            N(i)=N(i)+1;
            N(j)=0;
          end
      end
    end
   
if i>1
         c=zeros(1,i-1);
         for k=1:i-1
             if a(k)==a(i)
                c(k)=1;
            end   
         end
         if max(c)~=1   
             for j=i+1:t
               if a(j)==a(i)
                  N(i)=N(i)+1;
                  N(j)=0;
               end
             end
         end
end

这是主要部分的程序。

[ 本帖最后由 zhangnan3509 于 2007-10-25 18:54 编辑 ]
页: 1 [2]
查看完整版本: 一个循环函数,但是运行起来,运算时间太长貌似死循环