Clear Filters
Clear Filters

Rearrange cell array of strings based on occurrence in another cell array of string

4 views (last 30 days)
Hey,
I have two cell arrays of string. Let's call them A and B:
A = {'test1', 'test2'};
B = {'here_test2_occurs', 'here_test1_occurs'};
I know that the elements of A occur in the elements of B. How can I reorder the cell array A so that the elements are in the same order as they occure in B?
Thanks!

Accepted Answer

Stephen23
Stephen23 on 18 Apr 2023
Edited: Stephen23 on 18 Apr 2023
Assuming that every text in B contains exactly one text from A, and that every text in A occurs in B:
A = {'test1', 'test2', 'test1'};
B = {'here_test2_occurs', 'here_test1_occurs'};
F = @(a)find(contains(B,a));
[~,X] = sort(cellfun(F,A));
C = A(X)
C = 1×3 cell array
{'test2'} {'test1'} {'test1'}

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!