0

我做了一个模拟,每次模拟的结果都是一个矩阵,我从矩阵中选择某一行,所以如果模拟运行 = 500,我将有一个 500 矩阵,我每次选择的行将是(在模拟结束时)500行[第一个矩阵的一行...最后一个矩阵的最后一行]...问题是有时矩阵不包含我想要的特定行,答案是例如空矩阵:0×6 我想忽略这个答案注意:我选择的行不一定存在于所有矩阵中,所以如果 run=600 ,导致 600 矩阵,我选择的行可能 =400只有当结果为空矩阵时,其他 200 个将为零模拟停止:0 乘任何数字我使用 Matlab

4

1 回答 1

1

您可以isempty用来检测空数组,例如

a=zeros(0,5)
isempty(a)
a =
   Empty matrix: 0-by-5
ans =
     1

对于当索引超过矩阵维度时,您可以添加一个测试size矩阵的条件,特别是如何使用size(m,1)

因此,在您的 for 循环中,您可以编写如下代码:

for n=1:blah
    if ~isempty(M)      % continue if  matrix is non-empty
        if size(M,1)<=n % continue if index doesn't exceeds matrix dimensions
              ....
              ....
于 2013-02-03T01:17:05.667 回答