How to go from a char that is a CSV to a cell array
6 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Jos (10584)
2016-3-1
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 个评论
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!