我有一个大小为 [672 x 8] 的二维数组,其中有几行,第一列和第二列有一个值,另一列有一个NaN
值。还有其他行在所有列中都有值。我想创建两个新数组,以便第一个数组只包含其中包含的元素,NaN
第二个数组中没有NaN
元素。
例如
第 12 行:
517 2850 NaN NaN NaN NaN NaN NaN
第 13 行:
652 2037 169 2243 44 2443 -2 2644
我有一个大小为 [672 x 8] 的二维数组,其中有几行,第一列和第二列有一个值,另一列有一个NaN
值。还有其他行在所有列中都有值。我想创建两个新数组,以便第一个数组只包含其中包含的元素,NaN
第二个数组中没有NaN
元素。
例如
第 12 行:
517 2850 NaN NaN NaN NaN NaN NaN
第 13 行:
652 2037 169 2243 44 2443 -2 2644
尝试使用isnan
它。
TF = isnan(A)
返回一个与矩阵大小相同的数组,其中包含逻辑“ A
1” (的一部分是,并且如果实部和虚部都是有限的或)。true
A
NaN
false
z
isnan(z)
true
z
NaN
false
Inf
关于您的具体任务,要将原始矩阵一分为二,请执行以下操作:
TF = isnan(A); %// Determine which elements are NaNs
nan_rows = any(TF, 2); %// Determine rows that contain NaNs
B1 = A(nan_rows, :); %// Rows with NaN values
B2_nonans = A(~nan_rows, :); %// Rows without NaN values