Write data .txt format with different vector in different column

1 回表示 (過去 30 日間)
krai
krai 2018 年 7 月 3 日
編集済み: krai 2018 年 7 月 4 日
I have two different single column matrix
A = [1 2 3 4 5 6 7]; B = [110 120 114 116 117 119 121];
I want to write it in the .txt format as shown below,
1 110
2 120
3 114
4 116
5 117
6 119
7 121
Now I am try to do it with the below mentioned code but I am getting all the data in a single column,
fid=fopen('MyFile.txt','wt');
fprintf(fid,'%d\r\n',A);
fprintf(fid,'%d\r\n',B);
fclose(fid);

採用された回答

Mridul G
Mridul G 2018 年 7 月 3 日
A = [A B];
fid=fopen('MyFile.txt','wt');
for i = 1:length(A)
fprintf(fid,'%d %d\n',A(i,1),A(i,2));
end
fclose(fid);
  3 件のコメント
Guillaume
Guillaume 2018 年 7 月 3 日
I think Mridul assumed that A and B were column vectors as you've stated whereas you've got row vectors. So instead of creating a Nx2 matrix, [A B] creates a row vector. That can easily be fixed with
A = [A; B];
and iterating over the columns instead of rows.
But it's also a waste of time. You don't need a loop.
@Mridul, note that length should never be used on a matrix. Always use size with an explicit dimension.
krai
krai 2018 年 7 月 3 日
Thanks works as required..

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

その他の回答 (1 件)

Guillaume
Guillaume 2018 年 7 月 3 日
A loop is a waste of time:
fid = fopen('MyFile.txt', 'wt');
fprintf(fid, '%d %d\n', [A; B]);
fclose(fid);
This assumes that A and B are row vectors as you've shown but not as you've stated. A and B must of course have the same number of elements.
I assumeed you wanted a space between each column.
  2 件のコメント
Stephen23
Stephen23 2018 年 7 月 3 日
+1 no loop is the way to go.
krai
krai 2018 年 7 月 3 日
編集済み: krai 2018 年 7 月 4 日
Thanks Guillaume, Yes you assumed correct, I want space between each column.

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

カテゴリ

Help Center および File ExchangeLanguage Support についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by