Vectorizing multiple string comparison
이전 댓글 표시
Is there a way to significantly speed up this loop, perhaps by vectorizing it? Inputs in attachment. I do not have a Matlab version with "string" functions.
d = a';
for i = 1:numel(a)
d{i} = c(strcmp(a{i}, b), :);
end
I tried working my way from the inner part with cellfun, but either I am not getting it right or it is not the good approach:
aux = cellfun(@strcmp, a, b); % does not work
댓글 수: 2
Walter Roberson
2017년 1월 27일
That file is an Octave file that would take a bunch of work to read in MATLAB.
This is the wrong resource to be asking about performance improvement for Octave.
Paolo Binetti
2017년 1월 27일
채택된 답변
추가 답변 (1개)
Walter Roberson
2017년 1월 27일
1 개 추천
ismember can be used between cell arrays of strings. The two-output version can be used to find the indices, which you can then use to index into c.
댓글 수: 3
Paolo Binetti
2017년 1월 27일
Walter Roberson
2017년 1월 27일
Flip the order around, ismember(b, a) .
Paolo Binetti
2017년 1월 28일
카테고리
도움말 센터 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!