Problems with fprintf format (Matlab)

1 view (last 30 days)
Isaac Hormigo
Isaac Hormigo on 20 Dec 2020
Commented: Star Strider on 24 Dec 2020
I want to correct variables' format in a txt file, using the next code (previous import as separated arrays: skipping the first row (with text headers), defining date as a string):
id = fopen('data.txt', 'w');
fprintf(id, '%5s %3s %3s %3s %4s %3s %6s\n',...
'fecha', 'dia','mes', 'ano', 'hora', 'min', 'abs370');
datos = cat(2,dia, mes, ano, hora, min1, abs370);
datos = datos';
fecha = Fecha'; % Imported as a string
fprintf(id, '%16s %2i %2i %4i %2i %2i %8.4f\n',...
fecha, datos);
fclose(id);
type data.txt
But I get this error:
Error using fprintf Unable to convert 'string' value to 'int64'.
Why do I get this error?

Answers (1)

Star Strider
Star Strider on 20 Dec 2020
You have R2020a.
Use writetable instead.
  2 Comments
Isaac Hormigo
Isaac Hormigo on 24 Dec 2020
Edited: Isaac Hormigo on 24 Dec 2020
Ok, thanks. But why do I get this error? Is it not posible to mix both format in this way?
Star Strider
Star Strider on 24 Dec 2020
My pleasure!
No.
Some file formats will allow that, the reason I suggest writetable. It will do all that for you.
Also, if you want to import everything, readtable is the best option. (The documentation for it is linked at the end of the writetable documentation page.)

Sign in to comment.

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!