Transform char variable to matrix

17 vues (au cours des 30 derniers jours)
Guido Pozzi
Guido Pozzi le 14 Fév 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

Réponse acceptée

Walter Roberson
Walter Roberson le 14 Fév 2020
tmp = {'002,005';'002,003';'002,005'};
NewVar = cell2mat(cellfun(@(S) sscanf(S, '%f,%f').', tmp, 'uniform', 0));

Plus de réponses (2)

Stephen23
Stephen23 le 15 Fév 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 le 14 Fév 2020
tmp={'002,005';'002,003';'002,005'};
NewVar=str2double(split(tmp,','))
  2 commentaires
Guido Pozzi
Guido Pozzi le 14 Fév 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 le 14 Fév 2020
strsplit might work, but you might need to loop over cells

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by