# Pattern search and string indexing

1 view (last 30 days)
Ronald on 4 Jun 2020
Commented: Ameer Hamza on 5 Jun 2020
I have two cell arrays:
A = {[x(2)& x(4)& x(1)],[x(3),x(5)],[x(2),x(1)]}
B = {2465,2514,147,236,58}
where the integers in A are the indices of B items. I want to replace those indices with actual values as:
C = {[2514,236,2465],[147,58],[2514,2465]}
For loop is a bit slow. Is there an alternative?
##### 1 CommentShowHide None
madhan ravi on 4 Jun 2020
Why would you do that?

Sign in to comment.

### Accepted Answer

Ameer Hamza on 4 Jun 2020
Something like this
A = {[2 4 1],[3 5],[2 1]}; % you can put indexes as numbers
B = {2465,2514,147,236,58};
A_new = cellfun(@(x) {[B{x}]}, A)
##### 3 CommentsShowHide 2 older comments
Ameer Hamza on 4 Jun 2020
Can you explain what do you mean by separator?

Sign in to comment.

### More Answers (1)

madhan ravi on 4 Jun 2020
A = @(x){[x(2), x(4), x(1)],[x(3),x(5)],[x(2),x(1)]}
B = {2465,2514,147,236,58}
C = A(B)
##### 2 CommentsShowHide 1 older comment
Ameer Hamza on 5 Jun 2020
FYI, following code will slice A as you want
C = A([B{:}])

Sign in to comment.

### Categories

Find more on Matrix Indexing in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!