1
        adc.nv is 789 X 2 array

        in = ~isnan(adc.nv);

        nv = adc.nv(in);

これを行った後、788 X 2 配列ではなく 1576 X 1 配列を取得しています

4

2 に答える 2

1

この動作はここで説明されています:http://www.mathworks.nl/help/techdoc/math/f1-85462.html#bq7egb6-1

なぜなら

in = ~isnan(adc.nv);

in各行および/または列に異なる数のtrue/false要素を含めることができます。結果の行列adc.nv(in)は、行/列ごとに異なる数の要素を持ち、したがって行列として構築できない可能性があります。したがって、 Matlabはそれをすべて一緒にスローします。 1つのベクトル。

于 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 に答える