MATLAB中矩阵取其中几行

a=[1 2 4;4 NaN 5;23 9 NaN ;98 9 2;98 0 12;98 NaN 2;23 45 52;1 NaN 34];
[m,n]=size(a);
isnan(a)
c=~any(isnan(a),2)
b=a(c,:)
运行下来

c =

1
0
0
1
1
0
1
0
那可以直接b=a([1;0;0;1;1;0;1;0],:)?我运行了一下出错了

如果想取一个矩阵其中的第1,3,5,6,8行,为一个新的矩阵,则用下列语句:
b=a([1,3,5,6,8],:);
如果是取第1,3,5行和第1,4,5列相交的数据为新矩阵,可以表示为:
c=a([1,3,5],[1,4,5]);
这种表示方法肯定不会错的!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-26
要看你的c是列向量还是行向量。不要看显示的形式追问

c是列向量,

第2个回答  2015-03-26
 b=a(logical([1;0;0;1;1;0;1;0]),:)

第3个回答  2015-03-26
b=[c,a]就行
相似回答