Reading a CSV file with XLSread, convert raw data to strings
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
How do I convert this cell array to a char array (obtained by reading in from a csv file using xlsread and the "raw" argument
A =
[ 1]
[ 2]
[ 3]
'Y'
[ 5]
[ 6]
[ 7]
'Y'
'X'
[ 9]
[10]
I need to output this to a text file and have used:
for row = 1:numel(A)
fprintf(fileID,'%s\n',A{row});
end
but I get strange characters:
0 Kommentare
Akzeptierte Antwort
Stephen23
am 13 Apr. 2015
Bearbeitet: Stephen23
am 13 Apr. 2015
Given a cell array of mixed numeric and string data:
>> A = {1;2;3;'Y';5;6;7;'Y';'X';9;10};
>> B = cellfun(@num2str,A, 'UniformOutput',false)
B =
'1'
'2'
'3'
'Y'
'5'
'6'
'7'
'Y'
'X'
'9'
'10'
>> char(B)
ans =
1
2
3
Y
5
6
7
Y
X
9
10
3 Kommentare
Guillaume
am 13 Apr. 2015
Bearbeitet: Guillaume
am 13 Apr. 2015
cellfun calls the function you give it (in this case num2str) passing it in turn each element of the input cell array(s). It collects the output(s) of the function in a cell array the same shape as the input, if you pass it 'UniformOutput', false (or an plain array otherwise).
It is equivalent to writing a for loop over each element of the cell array and calling num2str within the loop, except you don't have to predeclare the output, nor do you have to worry about finding the bounds of the loop.
In this case, the line is equivalent to:
B = cell(size(A));
for idx = 1:numel(A)
B{idx} = num2str(A{idx});
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Cell Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!