2

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

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

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

4

2 回答 2

3

这有点笨拙,但它有效并且比ifor短try

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

或者

A(:,1:9999999999:size(A,2))
于 2013-09-06T22:21:48.063 回答
3

您可以使用逻辑索引:

A(:,end>0);

对于非空矩阵,它将是

A(:,logical(1));

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

A(:,logical(0));

它返回一个空列矩阵。

于 2013-09-07T09:05:41.867 回答