How to convert string to numeric variable in if statement
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ot
am 5 Mär. 2014
Kommentiert: Giorgos Papakonstantinou
am 5 Mär. 2014
I want to covert my string variable into numeric variables.
I have got string Variable Team that shows which players are in. For example C2, C1, B2, B1 etc.
I want to give each player a numeric value which represents the team.
I tried the following
for i =1:length(Team)
if Team(i) strcmp 'C1'
Team(i) = 1
elseif Team(i) strcmp 'C2'
Team(i) = 2
end
end
but get the error:
??? Conversion to logical from cell is not possible.
0 Kommentare
Akzeptierte Antwort
Jos (10584)
am 5 Mär. 2014
AllTeams = {'A1','B1','C1','C2','C3'} % all the teams
Team = {'A1','B1','C1','A1','C3','A1','unknown','C1'} % Team{k} is the team of player k is
% map team names to numbers
[~,TeamNumber] = ismember(Team, AllTeams)
X = find(TeamNumber <= 2) % players in team 1 or 2
0 Kommentare
Weitere Antworten (2)
Chandrasekhar
am 5 Mär. 2014
for i =1:length(Team)
if Team(i)== str2num(C1)
Team(i) = 1
elseif Team(i)==str2num(C2)
Team(i) = 2
end
end
5 Kommentare
Chandrasekhar
am 5 Mär. 2014
Ok..can you explain the logic clearly
what does the array team contain? and what exactly you want to find?
Giorgos Papakonstantinou
am 5 Mär. 2014
Bearbeitet: Giorgos Papakonstantinou
am 5 Mär. 2014
If this is exactly what you want to do then try this:
Team = {'C1' 'C2' 'C3' 'C4'}
for ii=1:length(Team)
switch Team{ii}
case 'C1'
Team{ii} = 1;
case 'C2'
Team{ii} = 2;
case 'C3'
Team{ii} = 3;
case 'C4'
Team{ii}=4
otherwise
fprintf('hallo')
end
end
But you change the variable Team... Maybe you assign the numbering to a new variable.
3 Kommentare
Giorgos Papakonstantinou
am 5 Mär. 2014
cell2mat(Team)
But in this way you alter the variable Team. Why don't you try this:
[~,B] = ismember(Team, {'B1' 'B2' 'C1' 'C2'})
It will have the same effect. You will not alter the cell Team. Instead you create a new variable B which is the same with the one you asked for.
Siehe auch
Kategorien
Mehr zu Data Preprocessing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!