Transform char variable to matrix

1 visualización (últimos 30 días)
Guido Pozzi
Guido Pozzi el 14 de Feb. de 2020
Respondida: Stephen23 el 15 de Feb. de 2020
Hi, I have a cell variable that looks like this:
I'D like to know if there is a way to transform it into a matrix of this kind:
NewVar=[2 5; 2 3; 2 5];
Thanks

Respuesta aceptada

Walter Roberson
Walter Roberson el 14 de Feb. de 2020
tmp = {'002,005';'002,003';'002,005'};
NewVar = cell2mat(cellfun(@(S) sscanf(S, '%f,%f').', tmp, 'uniform', 0));

Más respuestas (2)

Stephen23
Stephen23 el 15 de Feb. de 2020
Efficient solution:
>> C = {'002,005';'002,003';'002,005'};
>> sscanf(sprintf('%s;',C{:}),'%f,%f;',[2,Inf]).'
ans =
2 5
2 3
2 5

Sindar
Sindar el 14 de Feb. de 2020
tmp={'002,005';'002,003';'002,005'};
NewVar=str2double(split(tmp,','))
  2 comentarios
Guido Pozzi
Guido Pozzi el 14 de Feb. de 2020
When I run this I get 'Undefined function 'split' for input arguments of type 'cell'. I'm using Matlab 2015, maybe that split function isn't available for my matlab version.
Sindar
Sindar el 14 de Feb. de 2020
strsplit might work, but you might need to loop over cells

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by