想知道是否有人可以帮助我。
获取矩阵A的第一列x。我使用x = A(:,1)。矩阵A经常是空的,在这种情况下我希望我的列也是空的。但是使用Matlab,代码退出时出现错误“索引超出矩阵维度”。有没有办法防止它退出,而是给我[]?
(我当然可以使用isempty(A)编写一个“if”语句,但这很烦人,因为我的代码充满了几十个我可能有空矩阵的地方。)
答案 0 :(得分:3)
这有点笨拙,但它有效且比if
或try
更短:
A(:,1:min(1,size(A,2)))
或
A(:,1:9999999999:size(A,2))
答案 1 :(得分:3)
您可以使用逻辑索引:
A(:,end>0);
对于非空矩阵,它将是
A(:,logical(1));
返回第一列,对于空矩阵,它将返回
A(:,logical(0));
返回空列矩阵。