Convert structure to a vector?

Dear all, I need a help with accessing and converting a structure
if true
G = {'A', 'B'};
A = 1;
B = 2;
end
how can I convert it to a vector C = [1,2]
Thank you,

2 Comments

Where is structure above?
I have the data in this format which is
G = {'A', 'B'}
and just want to change the format. Maybe I'm wrong to define the type of this data.

Sign in to comment.

Answers (1)

>> G = {'A','B'};
>> V = [1,2]; % or [A,B]
>> [~,idx] = ismember(G,{'A','B'});
>> V(idx)
ans =
1 2
Or using char vectors (simpler):
>> G = 'AB';
>> V = [1,2];
>> [~,idx] = ismember(G,'AB');
>> V(idx)
ans =
1 2

3 Comments

Thanks for sharing this answer. It is really useful but I want to work out without showing the order of A and B. For example: G has certain value which A and B but the order different than the values in V. I will share my question as:
if
G ={'DOFF' 'On' 'On' 'DOFF' 'DOFF' 'SOFF' 'SOFF' 'On' DOFF};
DOFF =1;
On =2;
DoFF =3;
end
Now I want to convert them all to something like this
V = [1 3 3 1 1 2 2 3 3 1];
>> G = {'DOFF','On','On','DOFF','DOFF','SOFF','SOFF','On','DOFF'};
>> V = [1,2,3]; % same order as C:
>> C = {'DOFF','SOFF','On'};
>> [~,idx] = ismember(G,C);
>> V(idx)
ans =
1 3 3 1 1 2 2 3 1
Thank you so much. It worked :)

Sign in to comment.

Categories

Tags

Asked:

on 25 Jul 2018

Commented:

on 25 Jul 2018

Community Treasure Hunt

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

Start Hunting!