Matlab学习系列-011. 数据的读写、导入及导出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
011. 数据的读写、导入及导出
在编写一个程序时,经常需要从外部导入数据,或者将程序运行的结果保存为文件。
一、*.txt或*.dat数据的导入与导出
1.load函数——数值数据(格式一致)导入
注:load函数可以导入.mat文件,也可以导入变量Load(‘1.mat’,’y’)
例1.‘examp01.txt’文件如下:
1.6218e-005 6.0198e-005 4.5054e-005 8.2582e-005 1.0665e-005 8.6869e-005
7.9428e-005 2.6297e-005 8.3821e-006 5.3834e-005 9.6190e-005 8.4436e-006
3.1122e-005 6.5408e-005 2.2898e-005 9.9613e-005
4.6342e-007 3.9978e-005
5.2853e-005
6.8921e-005 9.1334e-005
7.8176e-006 7.7491e-005 2.5987e-005
1.6565e-005 7.4815e-005 1.5238e-005 4.4268e-005 8.1730e-005 8.0007e-005
代码:
x1 = load('examp01.txt') ;
% 用load函数载入文件examp01.txt中的数据
x1 = load('examp01.txt', '-ascii');
% 用-ascii选项强制以文本文件方式读取数据
load('examp01.txt'); %载入数据给变量examp01
运行结果:x1 = 1.0e-004 *
0.1622 0.6020 0.4505 0.8258 0.1066 0.8687
0.7943 0.2630 0.0838 0.5383 0.9619 0.0844
0.3112 0.6541 0.2290 0.9961 0.0046 0.3998
0.5285 0.6892 0.9133 0.0782 0.7749 0.2599
0.1657 0.7481 0.1524 0.4427 0.8173 0.8001
例2.‘examp02.txt’文件如下:
9.5550 2.7027, 8.6014; 5.6154* 3.4532
0.9223 0.9284, 1.4644; 3.6703* 2.2134
5.5557 7.2288, 4.3811;
6.4703* 4.7856
4.7271 9.9686, 6.1993; 9.6416* 0.6866
代码:
x1 = load('examp02.txt')
% 用load函数载入文件examp02.txt中的数据
x1 = load('examp02.txt', '-ascii');
% 用-ascii选项强制以文本文件方式读取数据
运行结果:x =
9.5550 2.7027 8.6014 5.6154 3.4532
0.9223 0.9284 1.4644 3.6703 2.2134
5.5557 7.2288 4.3811
6.4703 4.7856
4.7271 9.9686 6.1993 9.6416 0.6866
2.dlmread函数——有统一分隔符的数值数据导入
语法:M = dlmread(‘文件名’, ‘分隔符’,‘读取范围’)
例3.(带标题行)‘examp03.txt’文件如下:
这是2行头文件,
你可以选择跳过,读取后面的数据。
1.096975, 0.635914, 4.045800, 4.483729, 3.658162, 7.635046
6.278964,
7.719804, 9.328536, 9.727409, 1.920283, 1.388742
6.962663, 0.938200, 5.254044, 5.303442, 8.611398, 4.848533
代码:
x = dlmread('examp03.txt', ',', 2,0);
%调用dlmread函数读取文件examp02.txt中的数据,用逗号(',')作分隔符,设定读取的初始位置:2行0列之后的数据
运行结果:x =
1.0970 0.6359 4.0458 4.4837 3.6582 7.6350
6.2790
7.7198 9.3285 9.7274 1.9203 1.3887
6.9627 0.9382 5.2540 5.3034 8.6114 4.8485
例4.‘examp04.txt’文件如下:
1.455390+1.360686i, 8.692922+5.797046i, 5.498602+1.449548i, 8.530311+6.220551i
3.509524+5.132495i,
4.018080+0.759667i, 2.399162+1.233189i, 1.839078+2.399525i
4.172671+0.496544i, 9.027161+9.447872i, 4.908641+4.892526i, 3.377194+9.000538i
代码:
x = dlmread('examp04.txt')
% 调用dlmread函数读取的复数矩阵
运行结果:x =
1.4554 + 1.3607i 8.6929 + 5.7970i 5.4986 + 1.4495i 8.5303 + 6.2206i
3.5095 + 5.1325i
4.0181 + 0.7597i 2.3992 + 1.2332i 1.8391 + 2.3995i
4.1727 + 0.4965i 9.0272 + 9.4479i 4.9086 + 4.8925i 3.3772 + 9.0005i
例5. ‘examp05.txt’文件如下:
1.758744 7.217580 4.734860 1.527212
3.411246 6.073892 1.917453
7.384268 2.428496
9.174243
代码:
x = dlmread('examp05.txt')
x1 = load('examp05.txt') % 由于列数不一致,会报错
运行结果:x = =
1.7587 7.2176 4.7349 1.5272
3.4112 6.0739 1.9175 0
7.3843 2.4285 0 0
9.1742 0 0 0
3.dmlwrite函数——将矩阵数据写入指定分隔符的ASCII格式文件
语法:dlmwrite(‘文件名’, ‘数据’, ‘分隔符’, ‘起始行’, ‘起始列’)