如何編寫MATLAB程序才能實現(xiàn)對.TXT文檔的讀寫呢?
matlab文件操作
文件操作是一種重要的輸入輸出方式,即從數(shù)據(jù)文件讀取數(shù)據(jù)或?qū)⒔Y(jié)果寫入數(shù)據(jù)文件。MATLAB提供了一系列低層輸入輸出函數(shù),專門用于文件操作。
1、文件的打開與關(guān)閉
1)打開文件
在讀寫文件之前,必須先用fopen函數(shù)打開或創(chuàng)建文件,并指定對該文件進行的操作方式。fopen函數(shù)的調(diào)用格式為:
fid=fopen(文件名,‘打開方式’)
說明:其中fid用于存儲文件句柄值,如果返回的句柄值大于0,則說明文件打開成功。文件名用字符串形式,表示待打開的數(shù)據(jù)文件。常見的打開方式如下:
另外,在這些字符串后添加一個“t”,如‘rt’或‘wt+’,則將該文件以文本方式打開;如果添加的是“b”,則以二進制格式打開,這也是fopen函數(shù)默認的打開方式。
2)關(guān)閉文件
文件在進行完讀、寫等操作后,應(yīng)及時關(guān)閉,以免數(shù)據(jù)丟失。關(guān)閉文件用fclose函數(shù),調(diào)用格式為:
sta=fclose(fid)
說明:該函數(shù)關(guān)閉fid所表示的文件。sta表示關(guān)閉文件操作的返回代碼,若關(guān)閉成功,返回0,否則返回-1。如果要關(guān)閉所有已打開的文件用fclose(‘all’)。
2、二進制文件的讀寫操作
1)寫二進制文件
fwrite函數(shù)按照指定的數(shù)據(jù)精度將矩陣中的元素寫入到文件中。其調(diào)用格式為:
COUNT=fwrite(fid,A,precision)
說明:其中COUNT返回所寫的數(shù)據(jù)元素個數(shù)(可缺?。琭id為文件句柄,A用來存放寫入文件的數(shù)據(jù),precision代表數(shù)據(jù)精度,常用的數(shù)據(jù)精度有:char、uchar、int、long、float、double等。缺省數(shù)據(jù)精度為uchar,即無符號字符格式。
例6.8 將一個二進制矩陣存入磁盤文件中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid=fopen('d:\test.bin','wb')
fid =
>> fwrite(fid,a,'double')
ans =
>> fclose(fid)
ans =
2)讀二進制文件
fread函數(shù)可以讀取二進制文件的數(shù)據(jù),并將數(shù)據(jù)存入矩陣。其調(diào)用格式為:
[A,COUNT]=fread(fid,size,precision)
說明:其中A是用于存放讀取數(shù)據(jù)的矩陣、COUNT是返回所讀取的數(shù)據(jù)元素個數(shù)、fid為文件句柄、size為可選項,若不選用則讀取整個文件內(nèi)容;若選用則它的值可以是下列值:N(讀取N個元素到一個列向量)、inf(讀取整個文件)、[M,N](讀數(shù)據(jù)到M×N的矩陣中,數(shù)據(jù)按列存放)。precision用于控制所寫數(shù)據(jù)的精度,其形式與fwrite函數(shù)相同。
3、文本文件的讀寫操作
1)讀文本文件
fscanf函數(shù)可以讀取文本文件的內(nèi)容,并按指定格式存入矩陣。其調(diào)用格式為:
[A,COUNT]=fscanf(fid,format,size)
說明:其中A用來存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個數(shù),fid為文件句柄,format用來控制讀取的數(shù)據(jù)格式,由%加上格式符組成,常見的格式符有:d(整型)、f(浮點型)、s(字符串型)、c(字符型)等,在%與格式符之間還可以插入附加格式說明符,如數(shù)據(jù)寬度說明等。size為可選項,決定矩陣A中數(shù)據(jù)的排列形式,它可以取下列值:N(讀取N個元素到一個列向量)、inf(讀取整個文件)、[M,N](讀數(shù)據(jù)到M×N的矩陣中,數(shù)據(jù)按列存放)。
2)寫文本文件
fprintf函數(shù)可以將數(shù)據(jù)按指定格式寫入到文本文件中。其調(diào)用格式為:
fprintf(fid,format,A)
說明:fid為文件句柄,指定要寫入數(shù)據(jù)的文件,format是用來控制所寫數(shù)據(jù)格式的格式符,與fscanf函數(shù)相同,A是用來存放數(shù)據(jù)的矩陣。
例6.9 創(chuàng)建一個字符矩陣并存入磁盤,再讀出賦值給另一個矩陣。
>> a='string';
>> fid=fopen('d:\char1.txt','w');
>> fprintf(fid,'%s',a);
>> fclose(fid);
>> fid1=fopen('d:\char1.txt','rt');
>> fid1=fopen('d:\char1.txt','rt');
>> b=fscanf(fid1,'%s')
b =
string
matlab讀txt文件
fid=fopen('fx.txt','r');
%得到文件號
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件號1的數(shù)據(jù)讀到f中。其中f是[12 90]的矩陣
%這里'%f %f'表示讀取數(shù)據(jù)的形勢,他是按原始數(shù)據(jù)型讀出
fclose(fid);
%關(guān)閉文件
另外有的txt文件還可以用load來打開
其語句為
f=load('fx.txt)
我個人覺得用第一種方式較好。因為有些時候,特別是fx.txt 的一行種有多個數(shù)據(jù)時用load
就比較麻煩了。