Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-05-23, 15:09   #1
joyht
初级会员
 
注册日期: 2008-03-03
年龄: 41
帖子: 18
声望力: 18
joyht 正向着好的方向发展
默认 [求助]查找矩阵中的全零行

我有一个矩阵A
想找到这个矩阵中全是0的行并输出行号
请问该怎样编程?在线等,多谢!
joyht 当前离线   回复时引用此帖
旧 2008-05-23, 16:42   #2
yhcode
高级会员
 
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21
yhcode 正向着好的方向发展
默认

听你的意思,应该是一个二维矩阵了,这个应该不难,
[m,n] = size(A);
flag = 0;
for k = 1:m
if find(A(k,==0)
flag = flag+1;
zerorow(flag) = k;
end
end
其中zerorow中存的就是全零行号;
同样,这段代码可扩充到多维矩阵,判断某一维全为0。
yhcode 当前离线   回复时引用此帖
旧 2008-05-23, 18:51   #3
joyht
初级会员
 
注册日期: 2008-03-03
年龄: 41
帖子: 18
声望力: 18
joyht 正向着好的方向发展
默认

非常感谢!
joyht 当前离线   回复时引用此帖
旧 2008-05-23, 19:40   #4
joyht
初级会员
 
注册日期: 2008-03-03
年龄: 41
帖子: 18
声望力: 18
joyht 正向着好的方向发展
默认

刚刚运行了一下上面的代码,发现输出的是所有行的行号,可是矩阵中应该只有很少的几行是全0的,是哪里出问题了吗?
顺便说一下,A是一个稀疏矩阵,里面的零元素比较多,但是大多数行还是包含非零元素的,再次请高手指教!谢谢!
joyht 当前离线   回复时引用此帖
旧 2008-05-23, 21:59   #5
guflei
初级会员
 
注册日期: 2008-05-22
年龄: 40
帖子: 4
声望力: 0
guflei 正向着好的方向发展
默认

[m,n] = size(A);
flag = 0;
for k = 1:m
if size(find(A(k,==0),2)==n
flag = flag+1;
zerorow(flag) = k;
end
end

在他的基础上改了改,:tongue: 这个样子就可以了....
guflei 当前离线   回复时引用此帖
旧 2008-05-24, 14:21   #6
yhcode
高级会员
 
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21
yhcode 正向着好的方向发展
默认

呵呵,楼上说的对,有点儿马虎了,不好意思
yhcode 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]谁有分割织物图像的代码??其他的也凑活 laowangsb MATLAB论坛 0 2008-05-14 14:33
[求助]曲线拟合 北斗 MATLAB论坛 4 2008-05-05 07:23
[求助]找不到 'myprog.cpp' XD23 MATLAB论坛 0 2008-05-03 10:20


所有时间均为北京时间。现在的时间是 09:00


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.