Azzera filtri
Azzera filtri

Convert a single char array to a vector of doubles with a non-whitespace delimiter [R2017b, Windows7]

7 visualizzazioni (ultimi 30 giorni)
Hi,
I have a binary file that when I load up into Matlab produces the following cell which contains a cell array called data:
1x1 cell array:
{'44.565,433.4544,34.332'}
This can be a very long list of numbers and I would like to avoid using str2num (which works fine). I have tried using:
slope = sprintf('%s,',data{:})
doubleArray = sscanf(slope, '%f')
This only give me the first number. I suspect this is because I have a ',' as a delimiter and not a whitespace character.
str2double(data)
returns a NaN and I suspect this is because I have a single char array in a cell and not an array of strings.
Any advice as to how to do this without str2num?
Cheers, TJ

Risposta accettata

Birdman
Birdman il 4 Gen 2018
Modificato: Birdman il 4 Gen 2018
a={'44.565,433.4544,34.332'};
str=a{1}(:);
strNum=str2double(strsplit(str.',','))
Thanks to Stephen Cobeldick, another and faster approach:
sscanf(a{1}, '%f,')

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by