Write data .txt format with different vector in different column
6 次查看(过去 30 天)
显示 更早的评论
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);
0 个评论
采纳的回答
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
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.
更多回答(1 个)
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!