24小时热门版块排行榜    

查看: 351  |  回复: 3
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ning903

木虫 (职业作家)

笨笨家族小海豚

[交流] 【求助】看我写的程序对不对,矩阵元素中大于1的个数

看我写的程序对不对,矩阵元素中大于1的个数

看我写的程序对不对,矩阵元素中大于1的个数
  n=length(X);
for i=1:n
if X(i)>1
s(1,i)=1;
else
  s(1,i)=0;
end
ss=sum(s(1,i));%ss就是所求的  比1大的个数
end


第二种方法:
s=X(find(X)>1);
ss=length(s);


问一下这两个对不对啊,错了的话怎么改啊,谢谢大家了

[ Last edited by ning903 on 2008-12-2 at 16:54 ]
回复此楼

» 猜你喜欢

小海豚来到小木虫,各位达达多多关照!!! 感触我的温度
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fanshuju

用sum(sum(X>1))就行了;
4楼2008-12-30 22:00:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

woshilsh

荣誉版主 (职业作家)

优秀版主

★ ★ ★
kuhailangyu(金币+1,VIP+0):一起努力,谢谢!
lei0736(金币+2,VIP+0):再次奖励
第二种方法简单快捷,但是如果你不需要知道大于1的是那些元素的话,更简单,用这个语句:
num=length(find(x)>1);
Matlab里在进行这种Find运算的时候,默认矩阵是按行存储的。
比如:
A=【2 3 4
       3 4 5
       6 7 1】
找大于4的,find(A) 得到的结果是6 7 8,表示A(6)=5,A(7)=6,A(8)=7也即按行存储。

所以你的程序正确的,但是建议写程序的时候最好用第二种方法,第一种繁琐。

[ Last edited by woshilsh on 2008-12-2 at 18:04 ]
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
2楼2008-12-02 17:59:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

程序对不对自己试试不就行了吗,如果出错了再问不更好吗
3楼2008-12-13 18:24:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见