Matlab:空矩阵列

时间:2013-09-06 22:08:30

标签: matlab matrix matrix-indexing

想知道是否有人可以帮助我。

获取矩阵A的第一列x。我使用x = A(:,1)。矩阵A经常是空的,在这种情况下我希望我的列也是空的。但是使用Matlab,代码退出时出现错误“索引超出矩阵维度”。有没有办法防止它退出,而是给我[]?

(我当然可以使用isempty(A)编写一个“if”语句,但这很烦人,因为我的代码充满了几十个我可能有空矩阵的地方。)

2 个答案:

答案 0 :(得分:3)

这有点笨拙,但它有效且比iftry更短:

A(:,1:min(1,size(A,2)))

A(:,1:9999999999:size(A,2))

答案 1 :(得分:3)

您可以使用逻辑索引:

A(:,end>0);

对于非空矩阵,它将是

A(:,logical(1));

返回第一列,对于空矩阵,它将返回

A(:,logical(0));

返回空列矩阵。