一个循环函数,但是运行起来,运算时间太长貌似死循环
function sum1 = freq(x)sum1=0
l=length(x);
indices=[]
for i=1:l
m=x(i);
for j=1:l
indices = find(x==m)
sum1(j)=length(indices)
end
end
大家帮我看一下,我是想找到一列数据中每一个数据在这列数据中出现的次数。
但是运行起来总是停不下来,我怀疑是出现了死循环,或者算法有问题,大家能不能帮我指正一下。 。。。。没那么复杂吧:
>> a=
a =
Columns 1 through 12
2 3 4 1 5 6 1 4 3 2 0 3
Column 13
1
>> b = histc(a,min(a):max(a))
b =
1 3 2 3 2 1 1
[ 本帖最后由 ChaChing 于 2009-11-21 16:29 编辑 ]
回复 #2 eight 的帖子
我的想法是 这列数据每一个数对应的算出 它在整个列数中出现的次数,比如有1024个数据,对应有1024个值
[ 本帖最后由 zhangnan3509 于 2007-10-24 22:14 编辑 ]
回复 #2 eight 的帖子
如何统计数组中所有的值出现的次数 ? 原帖由 zhlong 于 2007-10-24 22:17 发表 http://www.chinavib.com/forum/images/common/back.gif如何统计数组中所有的值出现的次数 ?
我举的例子就是统计数组所有值出现的次数啊
回复 #5 eight 的帖子
我说得是对应位置的啊,a=
对于这个数组 按照我的想法是:返回
x=
2是数组中左边第一个值,那么它出现的次数就出现在x数组的相同位置,以此类推,13个数据在相同位置对应13个返回值
[ 本帖最后由 zhangnan3509 于 2007-10-24 22:24 编辑 ] 这又有何难呢?
a=;
b = histc(a,min(a):max(a))
=unique(a);
c=b(p); c
[ 本帖最后由 ChaChing 于 2009-11-21 16:32 编辑 ]
回复 #7 eight 的帖子
佩服啊,我很多函数还不熟悉,你是四两拨千斤啊:handshake回复 #5 eight 的帖子
不好意思,没细看:loveliness: 原帖由 zhangnan3509 于 2007-10-24 22:27 发表 http://www.chinavib.com/forum/images/common/back.gif佩服啊,我很多函数还不熟悉,你是四两拨千斤啊:handshake
哪有?其实我最近使用 matlab 比较少,很多都忘记了。这个题目我觉得 histc 和 unique 两个函数一起使用的话不太简洁,我想应该还有更好的方法,即只用其中一个就够了
回复 #10 eight 的帖子
其实这个已经很简单了啊 比起我的来,我运行了都死机了回复 #10 eight 的帖子
呵呵,eight说的对,下面似乎也可以。= histc(a,min(a):max(a));
m(n) 原帖由 zhlong 于 2007-10-24 22:52 发表 http://www.chinavib.com/forum/images/common/back.gif
呵呵,eight说的对,下面似乎也可以。
= histc(a,min(a):max(a));
m(n)
恩,正是这个,哈哈
回复 #13 eight 的帖子
也不能直接拿来用,我用来处理实际数据的时候 出现了0值,很奇怪啊,最少也是1啊 原帖由 zhangnan3509 于 2007-10-24 23:15 发表 http://www.chinavib.com/forum/images/common/back.gif也不能直接拿来用,我用来处理实际数据的时候 出现了0值,很奇怪啊,最少也是1啊
不会吧?仔细分析一下吧,m 有可能是0值,但是 m(p) 不会啊
页:
[1]
2