在矩阵的某列中查找NaN值并返回单元格位置

时间:2014-08-30 04:50:13

标签: matlab matrix

正如标题所示,我试图在矩阵中找到NaN数字的位置。 目前我的矩阵大小<15000x20&gt;。我想查看其中的一个库存并返回其中包含NaN的值的位置。

这是我到目前为止所做的,但似乎总是空白。

Input = xlsread('data.xlsx');
TF = isnan(Input); 

prompt = 'Which column to check?  ';
column = input(prompt)

empty = 0;

for i = 1:length(Input)

   empty = find(TF(i, column) == 1)

end

它总是返回一个空矩阵,而不是它应该的位置。我知道它已经找到了价值观。

1 个答案:

答案 0 :(得分:3)

find(isnan(data(:,column)))应该为你做到这一点。

这是我用来生成数据的完整脚本

% To create the data. You can read from excel file.
rows = 100;
cols = 5;
data = randi(10000,[rows,cols]);
for i=1:(rows*cols/25)
    data(randi(rows*cols)) = NaN;
end

% Take user prompt
prompt = 'Which column to check?  ';
column = input(prompt);

% Calculate result
nans = find(isnan(data(:,column)));