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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Stephen23
Stephen23 am 25 Jul. 2018

0 Stimmen

>> 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 Kommentare

Yaser Khojah
Yaser Khojah am 25 Jul. 2018
Bearbeitet: Yaser Khojah am 25 Jul. 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 am 25 Jul. 2018
Bearbeitet: Stephen23 am 25 Jul. 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 am 25 Jul. 2018
Thank you so much. It worked :)

Melden Sie sich an, um zu kommentieren.

Kategorien

Tags

Gefragt:

am 25 Jul. 2018

Kommentiert:

am 25 Jul. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by