hyl2323 发表于 2007-12-13 17:53

试算如下,不要看主题贴了,主题帖没说清楚(sorry)

程序:
a=;
b=;
c=;
aa=10:10:70;
for i=1:length(aa)-1
    j=find(a<=aa(i) & b>aa(i));
    cc(i)=c(j);%由于实际应用中的特殊设置,此处的j只可能为一个数
end
cc(end+1)=c(end);
aa
cc
结果:
aa =
    10    20    30    40    50    60    70
cc =
   1   1   2   2   3   3   3

花如月 发表于 2007-12-14 11:03

回复 #16 hyl2323 的帖子

呵呵,老早就觉得这个问题有简单办法,果然找到!hoho~~

a=;
b=;
c=;
aa=10:10:70;
= histc(aa,);
cc

cc =
   1   1   2   2   3   3   3
>>

[ 本帖最后由 花如月 于 2007-12-14 11:09 编辑 ]

gongyubaohushen 发表于 2007-12-15 11:09

高手好多啊,值得学习

hyl2323 发表于 2007-12-16 16:44

我回去用matlab试一试再来回帖哈!

hyl2323 发表于 2007-12-16 18:56

谢谢你,花如月,你用到的histc函数,确实是解决这个问题的关键,鉴于你没有用到c=,结果是巧合,我重写程序如下:
a=;
b=;
c=;
aa=10:10:70;
ab=;
=histc(aa,ab);
cci(end)=cci(end)-1;
cc=c(cci);
aa
cc
结果:
aa =
    10    20    30    40    50    60    70
cc =
    11    11    22    22    33    33    33
问题已经解决,谢谢各位高才!

花如月 发表于 2007-12-16 22:20

回复 #20 hyl2323 的帖子

并非巧合,那个求的是标号。因为你原来的c里边的值恰好是,所以略去的一句。加上就可以了

a=;
b=;
c=;
aa=10:10:70;
= histc(aa,);
cc=c(cc)%加上这句就可以了:@)

cc =

    11    11    22    22    33    33    33

[ 本帖最后由 花如月 于 2007-12-16 22:21 编辑 ]
页: 1 [2]
查看完整版本: 请教个避免用循环的编程技巧