counting the number of values in table if the condition satisfies??
조회 수: 32 (최근 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!