filter cell array with strings
17 views (last 30 days)
Show older comments
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}
0 Comments
Accepted Answer
Ive J
on 28 Oct 2021
Edited: Ive J
on 28 Oct 2021
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 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!