Find and replace a specific value in a table
209 ビュー (過去 30 日間)
古いコメントを表示
Hello, I have a table with over 15000 rows and 100 columns. I want to plot the values in columns but I need to turn some of them that are set to -9999 to NaN. And there are -9999 in all my columns( my columns are named)/
I would like to use something like that :
table(table==-9999)=NaN
But I know that I can't use comparator with a whole table so I have to add index :
table(table(:,:)==-9999)=NaN
But it's still not working.
Is there an index that take all columns? Or maybe another solution more simple?
Thank you!
0 件のコメント
採用された回答
Image Analyst
2022 年 4 月 21 日
編集済み: Image Analyst
2022 年 4 月 21 日
You forgot to attach your table so I had to create one.
% Create table data because OP forgot to attach his.
v1 = rand(100, 1);
v2 = rand(100, 1);
v1(1:10) = -9999;
v1(end-4:end) = -9999;
v2(1:15) = -9999;
v2(end-14:end) = -9999;
t = table(v1, v2, 'VariableNames', {'Column1', 'Column2'})
% METHOD 1: uSING table2array()
variableNames = t.Properties.VariableNames;
m = table2array(t);
m(m==-9999) = nan;
tFixed = table(m(:, 1), m(:, 2), 'VariableNames', {'Column1', 'Column2'});
% METHOD 2: USING FOR LOOP
% Now we have our table and we can begin replacing -9999 with NaN.
for col = 1 : width(t)
map9999 = t{:, col} == -9999;
t{map9999, col} = nan;
end
その他の回答 (2 件)
Siddharth Bhutiya
2023 年 3 月 30 日
t = table([1;-9999;3],[-9999;NaN;4],[NaN;4;5])
t = standardizeMissing(t,-9999)
0 件のコメント
David Hill
2022 年 4 月 21 日
m=table2array(yourTable);%assuming your table is all numbers of the same type
m(m==-9999)=nan;
%then just plot from the matrix
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!