adc.nv is 789 X 2 array
in = ~isnan(adc.nv);
nv = adc.nv(in);
在我这样做之后,我得到1576 X 1阵列而不是788 X 2阵列
答案 0 :(得分: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 :(得分: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