how extract table RowNames based on table elements
조회 수: 21 (최근 30일)
이전 댓글 표시
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
채택된 답변
Voss
2023년 2월 22일
% 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
추가 답변 (1개)
Steven Lord
2023년 2월 22일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!