fprintf command issue. tricky columns.

1 回表示 (過去 30 日間)
Burners
Burners 2012 年 10 月 1 日
コメント済み: Sara Pierson 2021 年 4 月 1 日
a=1:5;
b=90:94;
fprintf('Variables A : %.f | Variables B : %.f\n',a,b);
Consider the script above.
Variable a are the small values. I want to print all the variables on the LEFT COLUMN. Then variable b on the RIGHT column.
However with this sequence of fprintf the variable a results in an entirely different order.
1 2
3 4
5 90
91 92
93 94

採用された回答

Honglei Chen
Honglei Chen 2012 年 10 月 1 日
編集済み: Honglei Chen 2012 年 10 月 1 日
The trick is [a;b], like this
fprintf('Variables A : %.f | Variables B : %.f\n',[a;b]);
  1 件のコメント
Sara Pierson
Sara Pierson 2021 年 4 月 1 日
THIS WORKED FOR ME! Thank you! (I am using matlab 2020b btw if that helps anyone else)

サインインしてコメントする。

その他の回答 (1 件)

Burners
Burners 2012 年 10 月 1 日
What i want is, the same style as my vectors are arranged
1 90
2 91
3 92
4 93
5 94
  6 件のコメント
Walter Roberson
Walter Roberson 2019 年 9 月 7 日
fprintf(fileID,formatSpec,A1,...,An) applies the formatSpec to all elements of arrays A1,...An in column order, and writes the data to a text file.
If you have R2016b or later you might also want to look at compose(), which does not have this same behaviour.
Rik
Rik 2019 年 9 月 7 日
The fundamental point is that Matlab arrays are column-based. We might read row by row when we look at an array to be written, but Matlab doesn't. Maybe there should be a warning to this effect in the doc, but as far as I'm aware there isn't. If you want to avoid ambiguous situations, you should provide each input as a separate array.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLow-Level File I/O についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by