输入文件数据失真?
我要把一组曲线数据(40.txt)输入Matlab,并用数组z2_history存起来。40.txt里存的是一条曲线的信息(X-Y),且X相当于Y来说很小,数据如下:
/*(X Y) 用于理解,实际没有这个*/
0.01125 7.9743345E+009
0.01375 8.1522268E+009
...
0.016249999 8.0881219E+009
0.018749999 7.8106481E+009
用了以下命令:
fid = fopen('E:\40.txt','r');
z2_history = fscanf(fid,'%f %f',);
fclose(fid);
用 z2_history=z2_history' 再输出z2_history后得到:
z2_history =
1.0e+009 *
0.0000 7.9743
0.0000 8.1522
...
0.0000 8.0881
0.0000 7.8106
由于X相当于Y来说很小,此时X全变为0,没有正确输入。我想到的是把X乘以一个大数或Y除去一个大数,
从而使X、Y在一个数量级上,可X、Y都在文件中,不知如何处理。
请问大家,这个应该怎么处理,才能使得数据不失真??
[ 本帖最后由 eight 于 2007-10-19 22:39 编辑 ] 直接用load就可以了吧? 可能我没说清楚,现在文件已经读进去,
只是二组数据不在一个量级上(相差10^9),所以说那组小的数全置为0了。
或者你的意思是用load命令就不会出现这个问题了?
---------------------------------------------
正是这个意思,你试试看行不行。
问题有些蹊跷,看看精华帖子吧。
[ 本帖最后由 花如月 于 2007-10-19 22:10 编辑 ] 会不会是有效数字在搞鬼啊?? 读错几乎不可能,可能是显示的问题。如果问题没有解决,建议把你的40.txt传上来。 原帖由 lxo_0602 于 2007-10-19 21:54 发表 http://www.chinavib.com/forum/images/common/back.gif
我要把一组曲线数据(40.txt)输入Matlab,并用数组z2_history存起来。
40.txt里存的是一条曲线的信息(X-Y),且X相当于Y来说很小,数据如下:
/*(X Y) 用于理解,实际没有这个*/
0.01125 7.9743345E ...
这是显示精度的问题,实际计算不会影响的 只显示第一列z2_history(:,1)看一看,应该没有问题
回复 #1 lxo_0602 的帖子
应该是显示精度的问题 问题已解决。现在是显示出错了,要么是有效数字的问题(这也是我原本以为的),要么是显示的问题。
VibrationMaster站友提示显示第一行,得到以下结果:
z2_history(:,1)
ans =
0.0113
0.0138
0.0162
0.0187
0.0213
0.0238
0.0263
得到想要的结果,是显示的问题。
大家基本上都说对了,谢谢各位站友的热情帮忙! 解决了就好,其实这个问题版面已经讨论过多次,自己搜索一下就很快知道问题所在了。大家还是不愿意自己动手
页:
[1]