根據txt文檔不一樣種類介紹不一樣的讀取數據方法element
1、純數據文件(沒有字母和中文,純數字)文檔
對於這種txt文檔,從matalb中讀取就簡單多了字符串
例如test.txt文件,內容爲「17.901 -1.1111 33.045
17.891 -1.1286 33.045
17.884 -1.1345 33.045」get
能夠在command window中輸入load test.txt ,而後就會產生一個test的數據文件,內容跟test.txt中的數據同樣;另外一種方法是在file/import data....../next/finish 也可產生一個叫test的數據文件。it
2、中英文和數據如test1.txttest
「你好
歡迎來到
振動論壇
vib.hit.edu.cn
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555」
這樣的文件怎麼讀入數據呢?
方法有多種,現舉兩個比較簡單實用的。import
方法一:
file/import data....../next/finish
>> whos
Name Size Bytes Class變量
data 5x4 160 double array
textdata 4x1 300 cell arrayfile
Grand total is 54 elements using 460 bytes循環
>> data
data =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
>> textdata
textdata =
'你好'
'歡迎來到'
'振動論壇'
'vib.hit.edu.cn'
方法二:
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
說明:%s能夠是其餘形式,跟讀入的數據類型有關,好比這裏也能夠用%n,%f等。
這裏%s的個數和[a1,a2,a3,a4]對應。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
a1 =
'1'
'2'
'3'
'4'
'5'
a2 =
'11'
'22'
'33'
'44'
'55'
a3 =
'111'
'222'
'333'
'444'
'555'
a4 =
'1111'
'2222'
'3333'
'4444'
'5555'
因以字符串的形式讀入,因此有''。
————————————————————————————————
3、中文 數據 英文 混亂如test.txt
你好
1 11 111 1111
歡迎來到
2 22 222 2222
振動論壇
3 33 333 3333
vib.hit.edu.cn
4 44 444 4444
5 55 555 5555
說明:這種內容格式的文件用上面的方法是不行的。
如下是由chinamaker編寫的一種方法:
fidin=fopen('test.txt'); % 打開test2.txt文件
fidout=fopen('mkmatlab.txt','w'); % 建立MKMATLAB.txt文件
while ~feof(fidin) % 判斷是否爲文件末尾
tline=fgetl(fidin); % 從文件讀行
if double(tline(1))>=48&&double(tline(1))<=57 % 判斷首字符是不是數值
fprintf(fidout,'%s\n\n',tline); % 若是是數字行,把此行數據寫入文件MKMATLAB.txt
continue % 若是是非數字繼續下一次循環
end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt'); % 將生成的MKMATLAB.txt文件導入工做空間,變量名爲MK,實際上它不顯示出來
>> MK
MK =
1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 55 555 5555