adc.nv is 789 X 2 array
in = ~isnan(adc.nv);
nv = adc.nv(in);
在我这样做之后,我得到 1576 X 1 数组而不是 788 X 2 数组
这种行为在这里解释:http: //www.mathworks.nl/help/techdoc/math/f1-85462.html#bq7egb6-1
因为
in = ~isnan(adc.nv);
in
每行和/或列中可以有不同数量的真/假元素,结果矩阵可能adc.nv(in)
每行/列有不同数量的元素,因此不能构造为矩阵所以Matlab将它们全部放在一起一个向量。
也许您打算消除包含 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