# Assign number to certain value in cell

17 views (last 30 days)
Nickel Blankevoort on 23 Oct 2020
Answered: Akira Agata on 25 Nov 2021
Two cell arrays
First cell array (4x1cell):
A = As C H N
FIrst of all I would like to assign the value 1 to the first cell As, 2 to the second cell C, 3 to the tird cell H, 4 to the fourth cell N.
Second cell array (44x1cell):
B = As As N N H H H H C C C C C etc.
now I would like to create a vector X with the assigned values to the elements to the elements in B like:
X=[1 1 4 4 3 3 3 3 2 2 2 2 2 etc.]
Kind regards Nickel
##### 2 CommentsShowHide 1 older comment
Nickel Blankevoort on 24 Oct 2020
the elements As,N,H and C are already in the first cell array and don't need to be created.
but the values 1,2,3 and 4 do need to be assinged to those elements.
the same goes for the second cell array, the elements are already in there.
finally a new vector needs te be created with the assigned number to the elements in the first cell array,
corresponding to the elements in the second cell array.
the elements in both cell arrays change all the time so ideally the code adapts to that

Ahmed raafat on 23 Oct 2020
B{23,1}=[1 1 4 4 3 3 3 3 2 2 2 2 2 etc.]
like that???
Nickel Blankevoort on 24 Oct 2020
Hi Ahmed,
I am not too sure where that {23,1} comes from but the vector after the equal sign is correct

Akira Agata on 25 Nov 2021
How about using ismember function? Like:
% Sample cell arrays
A = {'As', 'C', 'H', 'N'};
B = {'As', 'As', 'N', 'N', 'H', 'H', 'H', 'H', 'C'};
% Create the array X
[~, X] = ismember(B, A);
% Show the result
disp(X)
1 1 4 4 3 3 3 3 2

### Categories

Find more on Operators and Elementary Operations 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!