2.8 储存及读取数据我们在使用MATLAB过程中,免不了希望将运算过程中的某些数据「储存」起来,以便下次使用再「读取」利 用。「储存」和「读取」的指令分别是save及load,而save的数据型态又分为:(1)双位元格式 (binary format) 的 MAT-file,(2) ASCII 格式的 ASCII-file。MAT-file 是以双位元字元储存,可让电脑在读出/入(input/output) 速率加 快,其格式为test.mat(test为档名),MATLAB将档案的型态预设为MAT-file;而ASCII-file则是以可辨识的字元 储存,但会降低电脑在读出/入的速率,其格式为test.dat(test为档名)。如果你的数据是只在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 的第三行数据 |
|
来自: 禁忌石 > 《MATLAB的工程应用》