qiqik0521 发表于 2007-7-25 10:16

请教大家如何判断矩阵中是否含有0元素?

我知道可以用all(a)%其中a是矩阵名判断,但是比如a是个3*3矩阵,all语句只能判断第1\2\3行分别含有不含有0向量
也就是返回的是3个值,

后来我将矩阵的变为一个1*9的行矩阵,返回值就变成了1个了
但是这种方法小矩阵还可以,大矩阵运算量就太大了,
我希望能直接判断一个矩阵含不含0元素
应该怎么做,请大家帮助我,谢谢了
我的QQ7821842

花如月 发表于 2007-7-25 12:07

help find

eight 发表于 2007-7-25 13:11

原帖由 qiqik0521 于 2007-7-25 10:16 发表 http://www.chinavib.com/forum/images/common/back.gif
我知道可以用all(a)%其中a是矩阵名判断,但是比如a是个3*3矩阵,all语句只能判断第1\2\3行分别含有不含有0向量
也就是返回的是3个值,

后来我将矩阵的变为一个1*9的行矩阵,返回值就变成了1个了
但是这种方法小 ...

any(a(:))

beckybu 发表于 2013-7-15 20:16

=find(A==0);
此语句会将A中为0的元素所在的行和列存在row和col中

ChaChing 发表于 2013-7-16 21:15

beckybu 发表于 2013-7-15 20:16 static/image/common/back.gif
=find(A==0);
此语句会将A中为0的元素所在的行和列存在row和col中

感谢和大家分享经验!
不过若要符合LZ的目的, 可能还需加句判断式

米斯兰达 发表于 2013-7-16 22:11

本帖最后由 米斯兰达 于 2013-7-16 22:12 编辑

楼上各位的方法已经很好了 我再提供一种方法哈
all函数可以带参数,all(a)就是all(a,1),检测a的每一列是否有0,而all(a,2)则是检测a的每一行是否有0
这样用两次all函数不就可以了吗,即
all(all(a),2)
判断返回的值,如果为1则说明a中肯定不含0,如果为0则说明a中至少含一个0
页: [1]
查看完整版本: 请教大家如何判断矩阵中是否含有0元素?