creating dummies from a cell vector of string variables

1 visualización (últimos 30 días)
Sabbas
Sabbas el 27 de Sept. de 2012
Dear all,
I have this cell vector
A={' ps1'
' ps1'
' ps1'
' ps1'
' ps2'
' ps2'
' ps2'
' ps2'
' ps3'
' ps3'
' ps3'
' ps3'
' ps4'
' ps4'
' ps4'}
I would like to construct dummies so as to have 1 for 'ps1', 2 for 'ps2' and so forth. Is there a way of doing that?. I tried str2double but it does not work for vectors as i get a vector of NaNs
thanks

Respuestas (3)

Tom
Tom el 27 de Sept. de 2012
B=str2num(cellfun(@(x) x(end),A))

Jan
Jan el 27 de Sept. de 2012
Editada: Jan el 27 de Sept. de 2012
str2double fails due to the leading part ' ps'. So you could remove it:
A={' ps1'; ' ps1'; ' ps1'; ' ps1'; ' ps2'; ...
' ps2'; ' ps2'; ' ps2'; ' ps3'; ' ps3'; ...
' ps3'; ' ps3'; ' ps4'; ' ps4'; ' ps4'};
B = strrep(A, ' ps', '');
Num = str2double(B);
But this is faster such that it reduces the CO2 production:
Str = sprintf('%s*', A{:});
Num = sscanf(Str, 'ps%d*');

Andrei Bobrov
Andrei Bobrov el 27 de Sept. de 2012
[c c c] = unique(A)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by