1

我有一个大小为 [672 x 8] 的二维数组,其中有几行,第一列和第二列有一个值,另一列有一个NaN值。还有其他行在所有列中都有值。我想创建两个新数组,以便第一个数组只包含其中包含的元素,NaN第二个数组中没有NaN元素。

例如

第 12 行:

517 2850 NaN NaN NaN NaN NaN NaN

第 13 行:

652 2037 169 2243 44 2443 -2 2644
4

1 回答 1

4

尝试使用isnan它。

TF = isnan(A)返回一个与矩阵大小相同的数组,其中包含逻辑“ A1” (的一部分是,并且如果实部和虚部都是有限的或)。trueANaNfalsezisnan(z)truezNaNfalseInf

关于您的具体任务,要将原始矩阵一分为二,请执行以下操作:

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
于 2013-06-03T15:42:27.270 回答