Transform char variable to matrix

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 MATLAB en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 14 de Feb. de 2020

Respondida:

el 15 de Feb. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by