adc.nv is 789 X 2 array
in = ~isnan(adc.nv);
nv = adc.nv(in);
これを行った後、788 X 2 配列ではなく 1576 X 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つのベクトル。
おそらく、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