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 个评论
Haritha
Haritha 2019-3-27
编辑:Haritha 2019-3-27
I have attached sample code. If string in U matches with string in xx I want to count the strings after matching string in xx. I have only one column as xx
Guillaume
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
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 个评论
Haritha
Haritha 2019-3-28
Ok Finally i will change it to cell array then i will use this other than table matching cells matching is fine
Guillaume
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 个)

类别

Help CenterFile Exchange 中查找有关 Language Fundamentals 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by