fprintf table
82 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
TheSpaceGuy
le 22 Oct 2011
Commenté : Walter Roberson
le 6 Avr 2023
Hi guys! I am having trouble making this table using only fprintf commands (NO LOOPS allowed). This is my code for the data that is supposed to be in the table
t = [40 35 30 25 20 15 10 5 0 -5 -10 -15 -20 -25 -30 -35 -40 -45];
v = [5 10 15 20 25 30 35 40 45 50 55 60]';
[T,V] = meshgrid(t,v);
Tc = 35.74 + 0.6215*T - 35.75*(V.^.16) + 0.4275*T .* (V.^.16)
Tchill = round(Tc)
This is how the table should look like: http://www.flickr.com/photos/45889511@N03/6269967871/in/photostream
All the help I can get will be appreciated!
0 commentaires
Réponse acceptée
Walter Roberson
le 22 Oct 2011
The secret to fprintf() to print tables, is to construct a single array in which all of the numeric values appear row by row in the same order they would appear on the screen -- and then pass the transpose of that table as the fprintf() argument after the format string.
2 commentaires
Walter Roberson
le 6 Avr 2023
My previous answer was written in 2011.
These days, I would probably instead use something like
fprintf(FID, '%s\n', join(compose("%4d", Tchill)))
The key difference here is that while fprintf() and sprintf() go "down" columns, compose() is happy to go across rows.
Tchill = [1 2; 3 4]
fprintf('%4d %4d\n', Tchill)
fprintf('%s\n', join(compose("%4d", Tchill)))
The fprintf() version output the items in linear index order; the compose() version ran across rows.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Tables dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!