如何在尽可能少的步骤中从mxn数组的特定列中选择所有非NaN数据?

时间:2013-02-25 20:52:23

标签: matlab

所以如果它只是一维向量,我可以简单地做这样的事情:

y1 = y(~isnan(y));

但是......如果y是mxn矩阵并且我想要y(:,5)中的所有非NaN数据怎么办?我可以做些什么,尽可能少的额外步骤?

我可以指定y1 = y(:,5),然后调用y1 = y(~isnan(y))。但是如果可能的话,我宁愿避免分配太多的新变量。

2 个答案:

答案 0 :(得分:1)

  

但是......如果y是mxn矩阵并且我想要y(:,5)中的所有非NaN数据怎么办?我可以做些什么,尽可能少的额外步骤?

你可以使用sub2ind,但这样做没有任何中间变量仍然会非常难看。我的建议是编写一个能够完成你想要的功能。

答案 1 :(得分:1)

如果你想要y的非Nan元素的坐标,你可以使用以下内容:

[row col]=ind2sub(size(y),find(~isnan(y)));