How do I write a cell array of strings to a file using DLMWRITE or CSVWRITE functions in MATLAB?
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 14 Jan 2010
Commenté : Rini Varghese
le 27 Mai 2017
I would like to write my cell array out to a delimited file, but DLMWRITE and CSVWRITE do not support it.
Réponse acceptée
MathWorks Support Team
le 14 Jan 2010
This change has been incorporated into the documentation in MATLAB 7.9 (R2009b). For previous releases, read below for any additional information:
The ability to save a cell array of strings to a text file with one function is not available in MATLAB but can be implemented in a number of methods. You will need to use low-level file I/O routines to achieve this. Depending on whether you have stored numbers or text in your cell array, you may need to modify the code below to be specific for your cell array:
fid=fopen('myFile.csv','wt');
x={'sin','cos','tan','log','exp'};
[rows,cols]=size(x)
for i=1:rows
fprintf(fid,'%s,',x{i,1:end-1})
fprintf(fid,'%s\n',x{i,end})
end
fclose(fid);
The same may be achieved without a loop, but using string and cell manipulation functions available in MATLAB:
fid=fopen('myFile.csv','wt');
x={'sin','cos','tan','log','exp'};
csvFun = @(str)sprintf('%s,',str);
xchar = cellfun(csvFun, x, 'UniformOutput', false);
xchar = strcat(xchar{:});
xchar = strcat(xchar(1:end-1),'\n');
fprintf(fid,xchar)
fclose(fid);
If you do have to modify any of the above code, some functions that may be helpful are: ISNAN, ISNUMERIC, ISCHAR, FPRINTF, FOPEN and FCLOSE.
You can find more information about each of these functions in the documentation. For example, to read more on ISNAN, type the following at the MATLAB command prompt:
doc isnan
or
help isnan
1 commentaire
Rini Varghese
le 27 Mai 2017
A simpler way perhaps is to set the delimiter to ''. For example: x = {'sin';'cos'}; y = cell2mat(x); dlmwrite('myfile',y,''); Note that x is separated by ; instead of , Hope this helps!
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Text Files dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!