How to go from a char that is a CSV to a cell array
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Will Kinsman
le 1 Mar 2016
Réponse apportée : Jos (10584)
le 1 Mar 2016
Hello all,
I have a char variable that is essentially a CSV file, however all attempts to turn it into a cell array (through simple means) have failed. Lets say my char variable looks like:
inputchar = 'name,bob,joe,paul
age,12,43,15'
(note there is a \n after paul) I would like my output to simply be a cell array to appear as:
outputcellarray = {'name','bob','joe','paul';
'age',12,43,15}
While I am aware of csvread, since I am trying to read from a char variable instead of a CSV file, I am having trouble. Any suggestions or simple workarounds other than writing an entire function to do this?
Thanks so much for the help everyone! Will
0 commentaires
Réponse acceptée
Jos (10584)
le 1 Mar 2016
Are you sure you want to store your data like this, i.e., all in a single cell array? Take a look at textscan to read you cvs file. Otherwise this might do the trick:
inputchar = 'name,bob,joe,paul\nage,12,43,15'
X = strrep(inputchar,'\n',',') % get rid of the line break
C = strread(X,'%s','delimiter',',') % read everything as a string
C = reshape(C,[],2).' % reshape in right format
V = str2double(C) % convert numbers
tf = ~isnan(V) % find these numbers
C(tf) = num2cell(V(tf)) % put them in place. Voila!
0 commentaires
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Data Type Conversion dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!