Write data .txt format with different vector in different column

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);

 Akzeptierte Antwort

Mridul G
Mridul G am 3 Jul. 2018
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 Kommentare

Hi Mridul, Tried the above code it is giving the below error
Index exceeds matrix dimensions.
Error in del2 (line 6)
fprintf(fid,'%d %d\n',A(i,1),A(i,2));
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.
Thanks works as required..

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Guillaume
Guillaume am 3 Jul. 2018
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 Kommentare

+1 no loop is the way to go.
krai
krai am 3 Jul. 2018
Bearbeitet: krai am 4 Jul. 2018
Thanks Guillaume, Yes you assumed correct, I want space between each column.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 3 Jul. 2018

Bearbeitet:

am 4 Jul. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by