Matlab中讀取txt檔案的幾種方法

2021-07-14 23:34:13 字數 3087 閱讀 4900

**:

一、純資料檔案(沒有字母和中文,純數字)

對於這種txt文件,從matalb中讀取就簡單多了

例如test.txt檔案,內容為「17.901 -1.1111 33.045

17.891 -1.1286 33.045

17.884 -1.1345 33.045」

可以在command window中輸入load test.txt ,然後就會產生乙個test的資料檔案,內容跟test.txt中的資料一樣;另一種方法是在file/import data....../next/finish 也可產生乙個叫test的資料檔案。

二、中英文和資料如test1.txt

「你好歡迎來到

振動論壇

vib.hit.edu.cn

1 11 111 1111

2 22 222 2222

3 33 333 3333

4 44 444 4444

5 55 555 5555」

這樣的檔案怎麼讀入資料呢?

方法有多種,現舉兩個比較簡單實用的。

方法一:

file/import data....../next/finish 

>> whos

name           size                   bytes class

data           5x4                      160 double array

textdata       4x1                      300 cell array

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'

因以字串的形式讀入,所以有''。

————————————————————————————————

三、中文 資料 英文 混亂如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                                         % 如果是非數字繼續下一次迴圈

endend

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

matlab如何讀取txt檔案

格式化文字的讀操作 唯讀形式開啟txt檔案 file t fopen mytxt.txt r 以十進位制讀取,且讀取的資料自動排成一列,排的順序為 先從第一行左邊到第一行右邊,然後排第二行 a fscanf file t,d 關閉檔案 fclose file t 使用textscan讀取多列資料 f...

MATLAB讀取txt中資料

fileid fopen filename fileid fopen filename,permission fileid fopen filename,permission,machineformat fileid fopen filename,permission,machineformat,e...

Matlab中讀取txt檔案的幾種方法

一 純資料檔案 沒有字母和中文,純數字 對於這種txt文件,從matalb中讀取就簡單多了 例如test.txt檔案,內容為 17.901 1.1111 33.045 17.891 1.1286 33.045 17.884 1.1345 33.045 可以在command window中輸入load...