我有一些浮点数;比如在 data=xlsread('Gas_pressure.xls','Real_comp','B1:C50');
现在我要输出这个data到txt里面(fid);要用到fprintf函数;关键是如何控制格式。
要求:每一个数字保留8位(包含小数点),有负号则包含负号(正号不用),浮点数的小数点位置在随时变化;比如这样的数字就是对的:
2.2312 23422.56(前一个后面补充2个空格)
234.343-999.99 (后一个数字补充2个空格)
上面的结果形式就是我要的;
我直接
re=fprintf(fid,'%-8s\n',num2str(data(1,1)),num2str(data(1,2)));
或者
re=fprintf(fid,'%-8f\n',data(1,1),data(1,2));
都是不行的。
再比如,数据Data(2,1)=456.454545,Data(2,2)=34232342.3422
输出要求为
456.454534232342.3422
你好,你的回答很精彩,但是我发现,我的问题需求又提高了;因为有的数字太大了,比如上亿了,需要用科学计数法格式化输出,比如:x=212222223.2232;y=-232322321.23;
需要格式化输出为:
2.1222e8
-2.323e8
就是保留总的位数为8个,但是怎么办呢?
回答了,再加20分给你。
>> a=-432535345 % 原始数据
a =
-432535345
>> s=sprintf('%5.3e',a) % 格式转换为字符
s =
-4.325e+008
>> r=[s(1:7) s(end)] % 数据整理
r =
-4.325e8