fprintf table
조회 수: 82 (최근 30일)
이전 댓글 표시
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
채택된 답변
Walter Roberson
2011년 10월 22일
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
Walter Roberson
2023년 4월 6일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Tables에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!