How to extract table data based on column values?
143 ビュー (過去 30 日間)
古いコメントを表示
Struggling in MATLAB
2022 年 3 月 17 日
回答済み: Struggling in MATLAB
2022 年 3 月 17 日
I have a table, part of which is displayed. I have attached the table in the question. The entries of the tables are 1*1 cell array.
I am trying to extract all the rows based on 'date'.
test_data((cell2mat(test_data.date) == '02/10/2022', :)
It gives me error "Row index exceeds table dimensions." I also get error for 'subjectid' or 'mazenumber' column.
But it works for "feeder" column.
>> test_data(cell2mat(test_data.feeder) == '4',:)
How do I fix this?
0 件のコメント
採用された回答
Eric Sofen
2022 年 3 月 17 日
One thing to watch out for is that the char vectors contained in the cell arrays (celltrs) can vary in the number of characters, causing cell2mat to fail. As @Jon suggested, strcmp between your char vector of interest and the cellstr variable is going to be much more robust.
Going a step further, it may make sense to convert some of your variables to more "modern" types:
subjectid - string
mazenumber - categorical
feeder - categorical or double
date - datetime
That said, depending on what you're doing with the data and how you're interacting with the database, it may not make sense to do the conversion.
1 件のコメント
その他の回答 (2 件)
Jon
2022 年 3 月 17 日
Could be you should be using strcmp rather than == to compare the strings
It's a little hard to know exactly how you have the data stored in the table.
Please save your table using
save test_data.mat test_data
and attach the resulting test_data.mat so we can see what is going on.
1 件のコメント
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!