声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1447|回复: 6

[编程技巧] 数组元素检验累加

[复制链接]
发表于 2009-7-21 20:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
假设:通过计算得出500组T数据,每次计算得出一组T,里面含有七个元素(一行七列),
比较每次的T中七个元素与a(某数值)的大小,并记录比a大的元素的位置
最终怎么知道这500数组中
每个位置上 比a大的次数呢?  请问主任老师怎么实现这种累加?

for mm=1:500
T=T(:,mm);
for i=1:7
if T(1,i) >a
sum(1,i)=sum(1,i)+1;
else
end
end
sum

[ 本帖最后由 ChaChing 于 2009-7-21 22:50 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-7-21 21:18 | 显示全部楼层
example:
T=1:7;
a=2;
b=zeros(size(T));
b(T>a)=b(T>a)+1;
最终b的每个元素的值就是比a大的次数
发表于 2009-7-21 22:48 | 显示全部楼层
试试下
a=0.5; aa=rand(500,7); ii=find(aa>a); length(ii)
 楼主| 发表于 2009-7-22 08:50 | 显示全部楼层

回复 沙发 波波球 的帖子

这个T数组 是每次得到的

下次得到新的T 怎么累加上去啊。发现没有保存前一次的b(T>a):@(
 楼主| 发表于 2009-7-22 08:58 | 显示全部楼层

回复 板凳 ChaChing 的帖子

这个会,在一个矩阵中寻找大于a的数的个数

就是放在每次就不会了, 比如
a=2;
T1=[1 2  3  4  1  1    1 ]   ;%%得到 数据b1(T>a)=[0  0  1   1  0 0  0  ]
T2=[1 ,3  , 3  ,1  ,1 , 2 ,3]   ;%%得到            数据[0  1  1   1  0 0  1  ]  
                                              累加到上次的得出是[0 1   2   2   0 0 1 ]
T3=[1  ,2  , 3  ,1  ,2 , 1 ,3]    ;%%得到            数据[0  0  1   0  0 0  1  ]  
                                               累加到上次的得出是[0 1   3   2   0 0 2 ]
。。。。。关键是个得出后的存储怎么弄?
...
T500=[ , , , , ]    得到累加到最后的结果

[ 本帖最后由 ChaChing 于 2009-7-22 20:00 编辑 ]
 楼主| 发表于 2009-7-22 13:01 | 显示全部楼层
mm=1:500;
Ab(mm,:)=zeros(1,7)
bbbb=find(T>a);
Ab(mm,bbbb)=1;
sum(Ab)

做出来了:@) 谢谢ChaChing主任和波波球了
发表于 2009-7-22 20:19 | 显示全部楼层

回复 6楼 prince00840 的帖子

可能LZ没使用复制, 有些小错误! 请参考!
建议先使用小一点的矩阵验证下! 个人都会如此, 没法, 记不牢!
nn=5; T=rand(nn,7); a=0.5; Ab=zeros(nn,7);
ii=find(T>a); Ab(ii)=1;
sum(Ab)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 01:38 , Processed in 0.094220 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表