Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303310
  • 博文数量: 71
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 734
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-20 17:17
文章分类

全部博文(71)

文章存档

2011年(1)

2009年(70)

我的朋友

分类:

2009-06-01 16:03:01

我们在使用MATLAB过程中,免不了希望将运算过程中的某些数据「储存」起来,以便下次使用再「读取」利 用。「储存」和「读取」的指令分别是saveload,而save的数据型态又分为:(1)双位元格式 (binary format) 的 MAT-file,(2) ASCII 格式的 ASCII-file。MAT-file 是以双位元字元储存,可让电脑在读出/入(input/output) 速率加 快,其格式为test.mattest为档名),MATLAB将档案的型态预设为MAT-file;而ASCII-file则是以可辨识的字元 储存,但会降低电脑在读出/入的速率,其格式为test.dattest为档名)。如果你的数据是只在MATLAB中产生 及被使用,那最好使用MAT-file。ASCII-file则必须用在当数据档要为其它不是MATLAB的应用软体读取时。

另外要注意,当save成MAT档是储存变数本身,而非直接储存变数的数据;而save成ASCII档则是直接储存变数的数值。

这二者储存的差异,造成在读取MAT档和ASCII档的数据有所不同,详见以下的范例。

须注意的是在储存及读取数据时,MAT-file或是ASCII-file的档最好为矩阵型态,否则可能在读取时有困难。数 据储存成矩阵的大小可以为m×n,其中m是列的数目,n则为行的数目。

以下就是几个save, load的使用范例

>> x=1:5; y=11:15; % 先产生二个列阵列 (row array} x, y

>> save data1 x y % 是将 x,y 二个变数的数值存入 data1 这个MAT-file,

%即data1其实是data1.mat。data1.mat 的内容为变数x, y,而非(1:5, 11:15) 的数据

>> save data2.dat x y -ascii % 如果要将data1改以ASCII格式储存,则须加上-ascii

% 的选项。data2.dat 的内容为(1:5, 11:15) 的数据

>> type data2.dat % type 指令可以将 data2.dat 的内容列出

>> load data1 % 读取 data1.mat 档

>> x, y % 叫出 data1.mat中的变数来读取其内容(1:5, 11:15)

>> load data2.dat % 读取 data2.dat 档

>> x2=data2(1,:); y2=data2(2,:); % 将data2中的第一及第二列数据分别以x2及y2

%变数读入,之后在运算中即可使用这二列数据

>> x=21:25; y=31:35;

>> save data3.dat x y -ascii

>> load data3.dat;

>> x3=data3(1,:); y3=data3(2,:); % 将data3中的第一及第二列数据分别以x3及y3 变数读入

%,之后在运算中即可使用这二列数据

>> A=[1 2 3; 4 5 6];

>> save data4.dat A -ascii %是将A阵列的数值存入data4这个ASCII-file

>> load data4.dat

>> x4=data4(:,1); % 令 x4 为 data4 的第一行数据

>> y4=data4(:,2); % 令 y4 为 data4 的第二行数据

>> z4=data4(:,3); % 令 z4 为 data4 的第三行数据

阅读(23245) | 评论(2) | 转发(0) |
0

上一篇:Int32 结构

下一篇:运行Load ***.dat 文件出错

给主人留下些什么吧!~~

Brian_ning2015-11-07 19:22:25

>> x4=data4(:,1); % 令 x4 为 data4 的第一行数据
>> y4=data4(:,2); % 令 y4 为 data4 的第二行数据
>> z4=data4(:,3); % 令 z4 为 data4 的第三行数据 
这个是不是有问题?  应该是data4的列数据吧!

chinaunix网友2010-11-10 16:07:13

精辟