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 comentarios

KSSV
KSSV el 25 de Jul. de 2018
Where is structure above?
Yaser Khojah
Yaser Khojah el 25 de Jul. de 2018
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.

Iniciar sesión para comentar.

Respuestas (1)

Stephen23
Stephen23 el 25 de Jul. de 2018
>> 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 comentarios

Yaser Khojah
Yaser Khojah el 25 de Jul. de 2018
Editada: Yaser Khojah el 25 de Jul. de 2018
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];
Stephen23
Stephen23 el 25 de Jul. de 2018
Editada: Stephen23 el 25 de Jul. de 2018
>> 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
Yaser Khojah
Yaser Khojah el 25 de Jul. de 2018
Thank you so much. It worked :)

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Conversion en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de Jul. de 2018

Comentada:

el 25 de Jul. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by