How to remove NaN in rows and columns of excel data set in matlab?

8 ビュー (過去 30 日間)
Haritha
Haritha 2018 年 9 月 19 日
コメント済み: Image Analyst 2020 年 9 月 29 日
Hi, I have the excel dataset of 50*48 matrix but it is having some NaN values also? I want to remove the NaN values from the matrix without loss of data.
Thank you in advance.
  2 件のコメント
jonas
jonas 2018 年 9 月 19 日
編集済み: jonas 2018 年 9 月 19 日
An array must be rectangular and cannot have truly empty elements. Do you want to replace them by something? How do you envision your desired output?
Haritha
Haritha 2018 年 9 月 19 日
I want to remove this NaN value

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2018 年 9 月 19 日
You can use isnan() to identify nan locations and then build a cell array with nulls there. If m is your matrix (untested code):
[rows, columns] = size(m);
nanLocations = isnan(m);
ca = cell(rows, columns); % Initialize cell array.
for row = 1 : rows
for col = 1 : columns
if ~nanLocations(row, col)
ca{row, col} = m(row, col); % Only fill cell if it's not nan.
end
end
end
xlswrite(filename, ca);
  3 件のコメント
Bryan Tan
Bryan Tan 2020 年 9 月 29 日
Hello Image Analyst, is there a way to make every rows after NaN as row 1 and the average all the row 1?
I have 3 rows of NaN, but I have numbers after that. So after every 3rd NaN, I want to make it as row 1, so I can average each row 1.
For example the first data has no NaN before it:
1
2
3
NaN
NaN
NaN
4
5
6
10
NaN
NaN
NaN
7
8
9
So the output average should be:
4
5
6
10
Thank you. My discussion topic is here:
https://au.mathworks.com/matlabcentral/answers/601879-averaging-and-interpolating-random-number-of-rows-of-data
Image Analyst
Image Analyst 2020 年 9 月 29 日
Yes, try this:
badRows = isnan(ca{:, 1}); % Find nans in column 1.
ca = ca(~badRows, :); % Extract all rows except the bad rows.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNaNs についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by