The function writecell was introduced in R2019a to write the contents of a cell array to a file. What would be the previous way to do the following?
writecell(C,'C_data.csv')
For me, each cell element has either a number or []. All of the entries in row 1 are numbers. In newer versions of MATLAB, writecell is really nice for this because I am able to generate the .csv file with just the numbers, even though each column is a different length. I would like to know another way to do this.

1 comentario

Walter Roberson
Walter Roberson el 2 de Abr. de 2022
It is not obvious why you have editted your question twice but not responded to my answer?

Iniciar sesión para comentar.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 2 de Abr. de 2022

1 voto

xlswrite() can write cell arrays in which each cell entry contains a single element; however "The xlswrite function does not support writing cell arrays that contain different data types when attempting to write CSV files."
I am not certain at the moment whether it would be able to support writing [] to csv .
If you need csv with emptyiness for [] (or for nan) then you might need to resort to using fopen() and writing the lines as text. For example,
fmt = [repmat('%g,', 1, 14), '%g\n'];
fid = fopen(TheFIlename, 'wt');
for K = 1 : size(TheCell, 1)
fprintf(fid, fmt, TheCell{K,:})
end
fclose(fid)
If entries in TheCell are [] then this would leave entries such as "3,,5' with nothing between the spaces.
If you wanted to trim away trailing empty cells then that would take more work but could be done.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Productos

Versión

R2018a

Etiquetas

Preguntada:

el 2 de Abr. de 2022

Comentada:

el 2 de Abr. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by