在Matlab里面如何在一个矩阵中找出值为零的行和列。

有些算法要用matlab实现。比如在一个111*111名叫AA的矩阵,这个矩阵行和列代表的意义相同!矩阵里面只有元素0和1,需要找出元素为0的行和列。寻找的时候不能随便扫描矩阵,得按如下方式进行寻找:
第一行开始,找出第一行中值为0的列,将这些列号和相同的行号剔除(假如列号有2,3,5,7等,那就将AA矩阵剔除以下:第2行和第2列,第3行和第3列,第5行和第5列,第7行和第7列),剩下的组成新的矩阵,接着从第一行开始扫描,找出第一行中值为0的列,按照上面的方式继续剔除找出的值。又组成新的矩阵,直到剩下的矩阵中没有零为止!
需要输出的值有:第一次剔除的列号放一起,第二次剔除的列号放一起,。。。。一直到第N次剔除的放一起。
小弟第一次提问,就只有50财富值,全部拿出来。谢谢大家了。

第1个回答  2015-09-18
[row, col] = find( R ~= 0 ); % row,col是所有非零元素的横坐标和纵坐标
num = size(row, 1); % 有多少个非零元素
for i = 1:num
R(row(i), col(i)) = 1; % 非零元素置一
end
第2个回答  2021-09-11
你既然是想找到零元素的行值和列值,只需要[r,c]=find(~AA);就好了,r(i)和c(i)分别是某个零元素在AA中的行坐标和列坐标。
第3个回答  2010-06-02
可以考虑用find函数
第4个回答  2010-06-10
这个问题看着就头大,就跟我的割集算法一样,愁啊。
相似回答