Azzera filtri
Azzera filtri

assign a value to a string

21 visualizzazioni (ultimi 30 giorni)
Saad
Saad il 14 Dic 2012
Dear all,
I have a list of string:
txt={'BBB3', 'BBB2', 'BBB1', 'A3', 'A2', 'A1','AA3','AA2','AA1'};
i would like to assign a value to each string. For instance,
Here is my code for i=1:length(txt) if isequal(txt{'i'},'BBB3')
txt{'i'}=11;
elseif isequal(txt{'i'},'BBB2')
txt{'i'}=12;
elseif isequal(txt{'i'},'BBB1')
txt{'i'}=13;
elseif isequal(txt{'i'},'A3')
txt{'i'}=14;
elseif isequal(txt{'i'},'A2')
txt{'i'}=15;
elseif isequal(txt{'i'},'A1')
txt{'i'}=16;
elseif isequal(txt{'i'},'AA3')
txt{'i'}=17;
elseif isequal(txt{'i'},'AA2')
txt{'i'}=18;
else
txt{'i'}=20;
end
end
Basically the output I am looking for is:
txt={11, 12, 13, 14, 15, 16, 17, 18 ,19};
however when I run the code and type txt in the screen in order to retrieve the final output i still get the initial input which is txt={'BBB3', 'BBB2', 'BBB1', 'A3', 'A2', 'A1','AA3','AA2','AA1'};
I might have missed something somewhere. ANy help is much appreciated Thanks

Risposta accettata

Image Analyst
Image Analyst il 14 Dic 2012
Try it without the apostrophes around the i:
txt={'BBB3', 'BBB2', 'BBB1', 'A3', 'A2', 'A1','AA3','AA2','AA1'};
for k =1 : length(txt)
if isequal(txt{k},'BBB3')
txt{k}=11;
elseif isequal(txt{k},'BBB2')
txt{k}=12;
elseif isequal(txt{k},'BBB1')
txt{k}=13;
elseif isequal(txt{k},'A3')
txt{k}=14;
elseif isequal(txt{k},'A2')
txt{k}=15;
elseif isequal(txt{k},'A1')
txt{k}=16;
elseif isequal(txt{k},'AA3')
txt{k}=17;
elseif isequal(txt{k},'AA2')
txt{k}=18;
else
txt{k}=20;
end
end
celldisp(txt);
  1 Commento
Saad
Saad il 14 Dic 2012
Thanks a lot it is working now...thank you for your help

Accedi per commentare.

Più risposte (1)

Wayne King
Wayne King il 14 Dic 2012
Modificato: Wayne King il 14 Dic 2012
Don't assign like this:
txt{'i'}
assign like this
txt{i}
For example
for ii =1:length(txt)
if isequal(txt{ii},'BBB3')
txt{ii}=11;
elseif isequal(txt{ii},'BBB2')
txt{ii}=12;
elseif isequal(txt{ii},'BBB1')
txt{ii}=13;
elseif isequal(txt{ii},'A3')
txt{ii}=14;
elseif isequal(txt{ii},'A2')
txt{ii}=15;
elseif isequal(txt{ii},'A1')
txt{ii}=16;
elseif isequal(txt{ii},'AA3')
txt{ii}=17;
elseif isequal(txt{ii},'AA2')
txt{ii}=18;
else
txt{ii}=20;
end
end
  1 Commento
Saad
Saad il 14 Dic 2012
Thanks a lot it is working now...thank you for your help

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by