如何在Matlab中从稀疏向量中提取有效值?

如何在Matlab中从稀疏向量中提取有效值?,matlab,vector,nan,Matlab,Vector,Nan,我有很多像下面这样的向量,非常稀疏,很多“NaN”。我打算做的是从这个向量中提取有效的数字,并将它们放入一个没有“NaN”值的单独向量中 每个向量都有不同的位置和有效数字,所以我不能把它们放到矩阵中然后提取行 所以请帮我做这个 10459865 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 8751943 NaN NaN NaN

我有很多像下面这样的向量,非常稀疏,很多“NaN”。我打算做的是从这个向量中提取有效的数字,并将它们放入一个没有“NaN”值的单独向量中

每个向量都有不同的位置和有效数字,所以我不能把它们放到矩阵中然后提取行

所以请帮我做这个

10459865
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
 8751943
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
 6951680
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
 5991217
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
 5327653
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
     NaN
 4740048
     NaN
     NaN
 4265221
     NaN
     NaN
 3973280

假设向量存储在变量
a

a(isfinite(a))
将只提取有效的(有限的)条目。

您可以使用isnan()函数来确定条目是否为数字。然后像

x = vector of values;
new_x = x(~isnan(x));
new_x是只包含有效数字的向量