counting the number of values in table if the condition satisfies??
34 次查看(过去 30 天)
显示 更早的评论
Hi,
I have 2 tables as
a =
y=
If the string in "y" matches with string in ''a'' i want to count all the strings after matching the strings.
I am looking for looping only not like count command.
Thanks in advance
9 个评论
Guillaume
2019-3-27
编辑:Guillaume
2019-3-27
Why is U a table as opposed to the simpler
U = 'car';
?
Why is xx a table as opposed to simply a cell array?
You don't seem to know how to index cell arrays, tables or matrices. If A is matrix, A{i} is an error.
So in your example, is the desired result 4? (4 strings after 'car')
采纳的回答
dpb
2019-3-27
xx = categorical({'computer'; 'car'; 'mobile'; 'bus'; 'tree'; 'jeep'});
u='car';
[ia,ib]=ismember(u,xx);
if ia
count=numel(xx)-2+1; % inclusive count
else
count=nan; % not found indicator
end
tables unnecessarily complicate life when they really have no useful reason for using them in a given case.
Using categorical for such variables simplilfies comparisons greatly; that's what they're for.
Above for a one-at-a-time lookup, loop over an array of u if needed...
2 个评论
Guillaume
2019-3-28
That count line should be:
count = numel(XX) - in + 1;
However, you could just replace the whole lot by:
count = numel(XX) - find(u == XX, 1);
In the above case, there's no benefit to using categorical. You could just stick to a cell array, in which case you replace the == by strcmp
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!