Transform char variable to matrix

1 view (last 30 days)
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

Accepted Answer

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

More Answers (2)

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

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!