原文地址:整理:matlab中fprintf 输出换行,按行列输出作者:浩瀚

%%%%%=========================fprintf按列输出=============

% % % [m, n] = size(a);  
%要反复调整a的形式(如将a转置)
% % % for i = 1 : m
% %
%    
for j = 1 : n
% %
%        
fprintf(‘%8.4f’, a(i, j));
% %
%    
end
% %
%    
fprintf(‘n’);
% % % end
%%%%%=========================================

===+++++++++++++++fprintf保存到指定路径+++++++++++++++++++++++++++===

a=[12 34 56;55 66
89];
fid = fopen(‘D:studydof.txt’, ‘wt’);
fprintf(fid, [repmat(‘%d ‘, 1, size(a,2)), ‘n’], a’);
fclose(fid);

===+++++++++++++++fprintf保存到指定路径+++++++++++++++++++++++++++===

 

==================================字符串;分行=========================

from: http://www.ilovematlab.cn/thread-83763-1-1.html

随手写的,有点乱。如果懒得浪费时间看前面的话,直接看最后几句话。
最近几次在论坛中看到有会员提问关于matlab中fprintf保存string字符到txt文档换行问题的分析,我没有在论坛中搜索,不知道是否有相应的问题的解决方法,只是自己做一下分析,并分享一下。

1 我们先做个小实验,
fid=fopen(‘Outputdata.txt’,’wt’);
str=[‘abc’;’bed’];
fprintf(fid,’%s’,str)
fclose(fid);
结果发现,打开txt文档一看,结果只有一行。其结果和str(:)的顺序一样。

如果是fprintf(fid,’%sn’,str)呢,发现在txt文档中实际有两行,只是第二行是一个空行而已。这就说明n是起了作用的。输入

a=sprintf(‘%sn’, str);
>> size(a)
ans =
 
   1 
   7
可以发现a实际上是七个字符,最后一个字符是换行符。因此换行当然是在最后了。
那么有人问,我如果直接在str中添加n呢?str=[‘an’;’bed’];
sprintf(‘%s’, str)
ans =
abend

显然也不能够实现换行的。
正确的实现方法是:
fid=fopen(‘Outputdata.txt’,’wt’);
str=[‘abc’;’bed’];
for i=1:2
fprintf(fid,’%s n’,str(i,:));
end
这样的话,在每一行中添加了一个/n。
lose(fid);

———————–

text文本换行我用的是:fprintf(fid,’rn’,str(i,:));