Problems with fprintf format (Matlab)

1 vue (au cours des 30 derniers jours)
Isaac Hormigo
Isaac Hormigo le 20 Déc 2020
Commenté : Star Strider le 24 Déc 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?

Réponses (1)

Star Strider
Star Strider le 20 Déc 2020
You have R2020a.
Use writetable instead.
  2 commentaires
Isaac Hormigo
Isaac Hormigo le 24 Déc 2020
Modifié(e) : Isaac Hormigo le 24 Déc 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 le 24 Déc 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.)

Connectez-vous pour commenter.

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by