日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab读取txt文件中的数据(使用textread函数)

發布時間:2025/3/21 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab读取txt文件中的数据(使用textread函数) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在使用Matlab處理數據時,我們經常需要讀取txt文檔,可以使用Matlab中強大的textread函數。
它的基本語法是:
[A,B,C,...] = textread(filename,format)
[A,B,C,...] = textread(filename,format,N)
其中filename就是文件名, format就是要讀取的格式,A,B,C就是從文件中讀取到的數據。
中括號里面變量的個數必須和format中定義的個數相同。 如果每N行相同格式的數據,可采用[A,B,C,...] = textread(filename,format,N)的語法,讀取N次。

?

舉例如下:

例1:myfile.txt 中的內容如下:
? ? 1 2 3 4
? ? 5 6 7 8
? ? 9 10 11 12
相應的語句為:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n');
或者為
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);

例2:myfile.txt 中的內容如下:
? ? 1, 2, 3, 4
? ? 5, 6, 7, 8
? ? 9, 10, 11, 12
相應的語句為:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n','delimiter',?',');
這里delimiter指出分隔符,讀數據的時候會自動跳過分隔符。


例3:myfile.txt 中的內容如下:
? ? % this a comment
? ? 1, 2, 3, 4
? ? 5, 6, 7, 8
? ? 9, 10, 11, 12
相應的語句為:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n','delimiter',?',','headerlines',?1);
這里告訴textread跳過一開始的1行,1可以替換為任意你要跳過的行數。

例4:myfile.txt 中的內容如下:

Sally Level1 12.34 45 Yes

相應語句為:

filename = '.\myfile.txt';

[names, types, x, y, answer] = textread(filename?, '%s %s %f %d %s', 1)?

? ? ①如果要忽略12.34這個浮點數:[names, types, y, answer] = textread(filename?, '%s %s %*f %d %s', 1)。?%*f告訴textread跳過一個浮點數。

? ? ②如果要忽略Level,只讀取后面的數字:[names, levelnum, x, y, answer] = textread(filename?, ... '%s Level%d %f %d %s', 1)?

?

例5:myfile.txt 中的內容如下

? ? 1,2,3,4,,6

? ? 7,8,9,,11,12?

? ? 想用nan替代為空的部分。語句如下:data = textread('myfile.txt', 'delimiter', ',', 'emptyvalue', NaN)。

?

例6:?myfile.txt 中的內容如下

? ? Sally????Type1 12.34 45 Yes?

? ? Joe??????Type2 23.54 60 No?

? ? Bill?????Type1 34.90 12 No?

? ? 如果只想讀第一列,其余的跳過:

? ? filename = '.\myfile.txt';?

? ? [names]=textread(filename,'%s%*[^\n]')?

? ? %[^...] - reads characters not matching characters between the brackets until first matching character

? ? %[^\n] 就是一直讀到行尾

? ? %*[^\n] 就是從當前直接跳到行尾

? ? 可對比:[names,rest]=textread(filename,'%s%[^\n]')??

例7:?myfile.txt 中的內容如下???????????????????

? ? Location;date;discharge??

? ? Lobith;1989-01-01;00:00;2801?

? ? Lobith;1989-01-02;00:00;2619?

? ? 語法如下:?

? ? [Location,... % 1????

? ? yyyy??????????????,... % 2a datestring year????

? ? mm????????????????,... % 2b datestring month????

? ? dd????????????????,... % 2c datestring day????

? ? HH????????????????,... % 3a timestring hour????

? ? MM????????????????,... % 3b timestring minute????

? ? discharge] =??...????

? ? textread(filename,'%s%f-%f-%f%f:%f%f',...????????

? ? ? ? 'headerlines',1,...????????

? ? ? ? 'delimiter'??,';');?

注意:textread不用先fopen那個文件,適用于格式統一的txt文件的一次性大批量讀取。textread讀取某個文件后,下次再用textread讀取這個文件時,還是會從文件頭開始讀取。

總結

以上是生活随笔為你收集整理的Matlab读取txt文件中的数据(使用textread函数)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。