how extract table RowNames based on table elements
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Yunwei
am 22 Feb. 2023
Beantwortet: Steven Lord
am 22 Feb. 2023
Hello all,
I have a table of only one colume with RowNames.
The table have numerical values and NaN.
I want to extract the RowNames of all of the NaN in the table. How can I do that?
Thanks in advance!
0 Kommentare
Akzeptierte Antwort
Voss
am 22 Feb. 2023
% a table as you describe
t = table([1;NaN;3;4;NaN],'RowNames',{'A';'B';'C';'D';'E'})
% extract RowNames of the NaN rows
nan_rows = t.Properties.RowNames(isnan(t{:,:}))
0 Kommentare
Weitere Antworten (1)
Steven Lord
am 22 Feb. 2023
I'd use ismissing, to avoid the need to extract the whole contents of the table into a separate array.
% a table as you describe
t = table([1;NaN;3;4;NaN],'RowNames',{'A';'B';'C';'D';'E'})
% extract RowNames of the NaN rows
nan_rows = t.Properties.RowNames(ismissing(t))
This also works if t has variables of different types. Yes, I could have listed "elderberry" but I need a missing value for the example.
t.FruitNames = ["apple"; "banana"; "cherry"; "date"; missing]
ismissing(t)
rowWithMissingNumberAndFruit = t.Properties.RowNames(all(ismissing(t), 2))
rowWithMissingNumberOrFruit = t.Properties.RowNames(any(ismissing(t), 2))
The approach Voss posted wouldn't work here.
isnan(t{:,:})
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!