matlab 怎么能把矩阵里不等于某个特定值的index找出来?

假设矩阵A=[2, 2, 2, 1, 1 ; 2, 2, 1, 1, 1 ; 2, 1, 1, 1, 1] 想把所有不等于1的地方的index 找出来。 之前试过了: index = find (A~=1), 结果index 出来了一个vector, 而不是矩阵的形式。 但我需要用这个从A处得来的这个 index 去筛选 另外一个 B 矩阵里的数。 B跟A是相同大小的矩阵, 如果index得出的是个vector, 怎么能去筛选B矩阵里的数呢?? 跪求大师赐教。。十分感谢!!

矩阵本身也可以看成一维向量(因为实际存贮的时候不论多少维的稠密张量都是按一维来存的), 所以可以直接用诸如
A(index)=0
B(index)=1
B(A~=1)=2
这样的操作
如果你一定想把index搞成矩阵的形式, 那么把find去掉, 直接用index=(A~=1)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-11
A=[2, 2, 2, 1, 1 ; 2, 2, 1, 1, 1 ; 2, 1, 1, 1, 1] ;
B=[1, 2, 3, 4, 5 ; 2, 3, 4, 5, 6 ; 3, 4, 5, 6, 7] ;
index=find(A~=1);
len=length(index);
Z=zeros(1,len);
for i=1:len
Z(i)=B(index(i));
end
得到的Z里面存储的就是A作为索引的B里面的数,不知道是不是你说的意思
相似回答