储存及读取数据

MATLAB

2.8 储存及读取数据


我们在使用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 的第三行数据



上一页 下一页 讲义大纲