non-looping way to compare cellstr arrays of different sizes
显示 更早的评论
Suppose A = {'aa', 'kk', 'ccc'}, B = {'aa', 'bb', 'cc', 'dd', 'ee'}.
Is there a not-explicitly-looping way to return a logical array the same size as A that is 1 where an element of A is in B, 0 where it is not, e.g.,
"whereMember"(A,B) => [1 0 0]?
Thanks!
采纳的回答
更多回答(1 个)
David Goldsmith
2011-8-24
7 个评论
Jan
2011-8-24
Small suggestions: Using "numel(A)" instead of "length(A)" considers cell arrays of any dimensions.
"la=false(size(A))" replies a logical array as ISMEMBER. Then the loop can be:
for i=1:numel(A), la(i)= any(strcmpi(A{i}, B)); end
BTW.: Your loop is faster than ISMEMBER.
Jan
2011-8-24
What is the meaning of your otehr thread: http://www.mathworks.com/matlabcentral/answers/13906-indexing-way-to-look-for-specifc-cell-arrays-in-a-cell-array-of-cell-arrays ???
David Goldsmith
2011-8-24
David Goldsmith
2011-8-24
Oleg Komarov
2011-8-25
Unfortunately yes.
David Goldsmith
2011-8-25
Jan
2011-8-25
@David: I've tried to let leo.org tell me, what affiliation is. Leo meant, that either somebody adopts me, or that it concerns my fatherhood. :-) If this means my company: I'm a freelancer. Perhaps my FEX author ID 15233 is helpful?
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!