MATLAB Answers

0

get common position in cell array and replace with specific values

Asked by Elysi Cochin on 20 Mar 2019
Latest activity Edited by Jan
on 21 Mar 2019
Accepted Answer by Jan
idx = [ 3 6 7 ] ;
ids = [ 2 3 5 6 7 ] ;
i have a cell of size 1 x 8
Initially all values in cell_array of size 1 x 8 is 'AB'
i want, the value in cell_array positions [3 6 7] (which is common in both idx and ids) to be wriiten as 'A' and the other values not in idx as 'B'
and those positions not in idx or ids, leave as it is (in our case 'AB')

  1 Comment

Sign in to comment.

1 Answer

Answer by Jan
on 20 Mar 2019
Edited by Jan
on 21 Mar 2019
 Accepted Answer

C = repmat({'AB'}, 1, 8);
idx = [ 3 6 7 ] ;
ids = [ 2 3 5 6 7 ] ;
index = intersect(ids, idx);
C(index) = {'A'};
index = setdiff(ids, idx);
C(index) = {'B'};
Or leaner:
m = ismember(ids, idx);
C(ids(m)) = {'A'};
C(ids(~m)) = {'B'};
Or:
Pool = {'B', 'A'};
C(ids) = Pool(ismember(ids, idx) + 1)

  0 Comments

Sign in to comment.