爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3668|回复: 8

[程序设计] matlab读取文本文件

[复制链接]

新浪微博达人勋

发表于 2016-4-28 20:49:42 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
matlab使用fopen+fscanf读取文本格式数据
程序如下
clear;
clc;
fid   = fopen('data.dat','r')
data1 = fscanf(fid,'%f %f',[2 50])
data2 = data1'
fclose(fid)


数据如下
0.0131        0.0002
0.0304        0.0001
0.0644        0.0001
0.1263        0.0001
0.2324        0.0002
0.4052        0.0003
0.6749        0.0005
1.0801        0.0007
1.6691        0.0011
2.5011        0.0017
3.6462        0.0024
5.1864        0.0034
7.215        0.0046
9.8368        0.006
13.1672        0.0072
17.3308        0.0083
22.4601        0.009
28.6937        0.0092
36.1735        0.0093
45.043        0.01
55.4433        0.0107
67.5109        0.0115
81.3744        0.0125
97.1505        0.014
114.9415        0.0151
134.8318        0.0162
156.8846        0.0184
181.1394        0.0216
207.6092        0.0259
236.2784        0.0294
267.1012        0.0343
300        0.039
334.8648        0.0451
371.5529        0.0522
409.8893        0.0616
449.6677        0.0729
490.6516        0.0865
532.5769        0.1029
575.1538        0.1227
618.0706        0.1462
660.9965        0.168
703.5863        0.1977
745.4841        0.2337
786.3278        0.271
825.7546        0.3029
863.4047        0.3393
898.9275        0.3685
931.9853        0.4006
962.2587        0.4411
989.451        0.4763
1013.2923        0.5094
1033.5436        0.5428
1050.00        0.56


当fscanf中第三个参数【2 50】时数据读取错误,改为【2 51】时整个数据读取错误,即数据为xxxx.xxxx时错误
错误读取结果
data2 =

   1.0e+03 *

    0.0000    0.0000
    0.0000    0.0000
    0.0001    0.0000
    0.0001    0.0000
    0.0002    0.0000
    0.0004    0.0000
    0.0007    0.0000
    0.0011    0.0000
    0.0017    0.0000
    0.0025    0.0000
    0.0036    0.0000
    0.0052    0.0000
    0.0072    0.0000
    0.0098    0.0000
    0.0132    0.0000
    0.0173    0.0000
    0.0225    0.0000
    0.0287    0.0000
    0.0362    0.0000
    0.0450    0.0000
    0.0554    0.0000
    0.0675    0.0000
    0.0814    0.0000
    0.0972    0.0000
    0.1149    0.0000
    0.1348    0.0000
    0.1569    0.0000
    0.1811    0.0000
    0.2076    0.0000
    0.2363    0.0000
    0.2671    0.0000
    0.3000    0.0000
    0.3349    0.0000
    0.3716    0.0001
    0.4099    0.0001
    0.4497    0.0001
    0.4907    0.0001
    0.5326    0.0001
    0.5752    0.0001
    0.6181    0.0001
    0.6610    0.0002
    0.7036    0.0002
    0.7455    0.0002
    0.7863    0.0003
    0.8258    0.0003
    0.8634    0.0003
    0.8989    0.0004
    0.9320    0.0004
    0.9623    0.0004
    0.9895    0.0005
    1.0133    0.0005


请教一下为什么会出错。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-28 21:52:34 | 显示全部楼层
你把两个%f,改成%9.5f,试试?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2016-4-29 08:56:22 | 显示全部楼层
1.建议用importdata
2.为什么我感觉分隔符是\t而不是空格
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 09:42:00 | 显示全部楼层
oucdaqi 发表于 2016-4-28 21:52
你把两个%f,改成%9.5f,试试?

不行,改掉根本读不出来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 10:04:54 | 显示全部楼层
已解决,数据读取是正确的,是matlab对浮点型数据的显示不同而已
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 10:10:00 | 显示全部楼层
二爷名声在外 发表于 2016-4-29 08:56
1.建议用importdata
2.为什么我感觉分隔符是\t而不是空格

谢谢,已解决,数据读取是正确的,是matlab对浮点型数据的显示不同而已
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-29 22:46:07 | 显示全部楼层
来学习的!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-5-9 09:56:34 | 显示全部楼层
学习一下,希望能用到
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-4 17:04:18 | 显示全部楼层
oucdaqi 发表于 2016-4-28 21:52
你把两个%f,改成%9.5f,试试?

%9.5f中的9.5是什么意思呢??
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表