filter cell array with strings

15 次查看(过去 30 天)
i have a cell array and want to create a chart by filtering values. basically i want to filter by cat1 and cat3.
For example, i want to pull out all rows where 'cat' is the value for cat1 and then pull out rows where '100' is the value for cat3 (i.e. row 1 and 6 in this case)
my cell array looks like:
{cat1} {cat2} {cat3}
{'cat'} {4} {100}
{'dog'} {4} {100}
{'bird'} {4} {100}
{'cat'} {5} {100}
{'dog'} {4} {200}
{'cat'} {5} {100}

采纳的回答

Ive J
Ive J 2021-10-28
编辑:Ive J 2021-10-28
Try to work with tables, they're more versatile. Also check groupfilter for more advanced filtering schemes.
tab = array2table(string(yourCell))
cat1 cat2 cat3
______ ____ ____
"cat" 4 100
"dog" 4 100
"bird" 4 100
"cat" 5 100
"dog" 4 200
"cat" 5 100
idx = tab.cat1 == "cat" & tab.cat3 == 100;
newTab = tab(idx, :)
cat1 cat2 cat3
_____ ____ ____
"cat" 4 100
"cat" 5 100
"cat" 5 100

更多回答(0 个)

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by