1
        adc.nv is 789 X 2 array

        in = ~isnan(adc.nv);

        nv = adc.nv(in);

在我这样做之后,我得到 1576 X 1 数组而不是 788 X 2 数组

4

2 回答 2

1

这种行为在这里解释:http: //www.mathworks.nl/help/techdoc/math/f1-85462.html#bq7egb6-1

因为

in = ~isnan(adc.nv);

in每行和/或列中可以有不同数量的真/假元素,结果矩阵可能adc.nv(in)每行/列有不同数量的元素,因此不能构造为矩阵所以Matlab将它们全部放在一起一个向量。

于 2012-06-05T00:21:23.663 回答
0

也许您打算消除包含 NaN 值的行。例子:

>> x = rand(6,2);
>> x(3,1) = nan; x(5,2) = nan;
>> x
x =
      0.81472       0.2785
      0.90579      0.54688
          NaN      0.95751
      0.91338      0.96489
      0.63236          NaN
      0.09754      0.97059

现在:

>> newX = x(~any(isnan(x),2),:)
newX =
      0.81472       0.2785
      0.90579      0.54688
      0.91338      0.96489
      0.09754      0.97059
于 2012-06-05T00:18:15.253 回答