matlab如何讀取txt文本數(shù)據(jù)? matlab讀取txt文件的技巧

如何編寫MATLAB程序才能實現(xiàn)對.TXT文檔的讀寫呢?
MATLAB提供了一系列低層輸入輸出函數(shù),專門用于文件操作。本文提供了幾種Matlab讀寫文件的方法和預(yù)寫的腳本。
Matlab讀取 .txt文件
這里提供兩種方法:
- 1,load()函數(shù)
- 2,importdata()函數(shù)
一、對于load()函數(shù)
例子,data_txt.txt內(nèi)容如下:
0 1.000000 1.000000 1.000000
1 3.000000 4.000000 5.000000
2 5.000000 7.000000 9.000000
3 7.000000 10.00000 13.00000
4 9.000000 13.00000 17.00000
5 11.00000 16.00000 21.00000
example_load_txt.m 內(nèi)容如下:
clear all; close all; clc %對于類似的txt文件,不含有字符,只有數(shù)字 data=load('F:\F桌面文件\data_txt.txt'); x=data(:,1); y1=data(:,2); y2=data(:,3); y3=data(:,4); plot(x,y1,'r--',x,y2,'bo',x,y3,'ks')
二、對于importdata()函數(shù)
例子,data_txt_string.txt內(nèi)容如下:
i co c1 c2
0 1.000000 1.000000 1.000000
1 3.000000 4.000000 5.000000
2 5.000000 7.000000 9.000000
3 7.000000 10.00000 13.00000
example_importdata_txt.m 內(nèi)容如下:
clear all; close all; clc %只是第一行有字符,則使用importdata可直接讀取數(shù)據(jù) data1=importdata('F:\F桌面文件\data_txt_string.txt'); data2=data1.data; %若沒有這一步,出不出來圖。 x=data2(:,1); y1=data2(:,2); y2=data2(:,3); y3=data2(:,4); plot(x,y1,'r--',x,y2,'bo',x,y3,'ks');
1、文件的打開與關(guān)閉
1)打開文件
在讀寫文件之前,必須先用fopen函數(shù)打開或創(chuàng)建文件,并指定對該文件進行的操作方式。fopen函數(shù)的調(diào)用格式為:
fid=fopen(文件名,‘打開方式’)
說明:其中fid用于存儲文件句柄值,如果返回的句柄值大于0,則說明文件打開成功。文件名用字符串形式,表示待打開的數(shù)據(jù)文件。常見的打開方式如下:
‘r’:只讀方式打開文件(默認(rèn)的方式),該文件必須已存在。 ‘r+’:讀寫方式打開文件,打開后先讀后寫。該文件必須已存在。 ‘w’:打開后寫入數(shù)據(jù)。該文件已存在則更新;不存在則創(chuàng)建。 ‘w+’:讀寫方式打開文件。先讀后寫。該文件已存在則更新;不存在則創(chuàng)建。 ‘a(chǎn)’:在打開的文件末端添加數(shù)據(jù)。文件不存在則創(chuàng)建。 ‘a(chǎn)+’:打開文件后,先讀入數(shù)據(jù)再添加數(shù)據(jù)。文件不存在則創(chuàng)建。
另外,在這些字符串后添加一個“t”,如‘rt’或‘wt+’,則將該文件以文本方式打開;如果添加的是“b”,則以二進制格式打開,這也是fopen函數(shù)默認(rèn)的打開方式。
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ù)(可缺?。?,fid為文件句柄,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’) %以二進制數(shù)據(jù)寫入方式打開文件
fid =
3 %其值大于0,表示打開成功
fwrite(fid,a,‘double’)
ans =
9 %表示寫入了9個數(shù)據(jù)
fclose(fid)
ans =
0 %表示關(guān)閉成功
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('xxx.txt')
這里推薦用第一種方式較好。因為有些時候,特別是xxx.txt 的一行種有多個數(shù)據(jù)時用load就比較麻煩。而第一種方法可以批量導(dǎo)入文件。
matlab的文件讀取函數(shù)功能可以讀取各種文件類型,包括
- textread(字母和數(shù)值每行格式一致)
- xlsread(讀取excel文件)
- importdata(字母和數(shù)值分開,以數(shù)字為主,字母只存在前幾行)
- load(純數(shù)據(jù))
- dlmread(單一分隔符的純數(shù)據(jù)或ASCII數(shù)據(jù)文件)
- textscan(類似于textread,但使用前必須fopen打開文件)
- csvread(類似于xlsread,讀取.csv格式的文件)
- fscanf(讀取已知文件格式的文本文件)
matlab對文件中混亂的文本格式讀取操作總結(jié)
對于本文字符數(shù)字較為混亂的文本進行文本操作需要對文件內(nèi)部進行操作,包括文本位置指針,文件逐行讀取,字符匹配等等復(fù)雜操作。主要用到的幾個函數(shù)有
- feek(設(shè)置指針位置)
- ftell(獲得指針位置)
- frewind(重設(shè)指針到文件起始位置)
- feof(測試指針是否在文件結(jié)束位置)
具體用法:
- fseek(fid,-1,’eof’),指針到末尾
- fseek(fid,2,’bof’),起始位置后第二個字符位置
- ftell(fid);找到指針位置
- frewind(fid),指針回到起始
- feof(fid)判斷指針是否在末尾
以上就是matlab讀取txt文件的技巧,希望大家喜歡,請繼續(xù)關(guān)注腳本之家。
相關(guān)推薦:
MATLAB怎么讀取Excel文件表格中的數(shù)據(jù)? Matlab讀取Excel文件指南
matlab中怎么求矩陣的轉(zhuǎn)置? matlab矩陣轉(zhuǎn)置命令使用技巧
相關(guān)文章
Matlab 2018a怎么安裝?Matlab R2018a官方激活安裝詳細(xì)教程(附下載)
matlab r2018a是一款經(jīng)典好用的商業(yè)數(shù)學(xué)軟件,新版包含更多數(shù)據(jù)分析、機器學(xué)習(xí)和深度學(xué)習(xí)選項,提供了鼓勵探索和發(fā)現(xiàn)的環(huán)境,下面就整理了matlab R2018a最新激活安裝方法,2018-03-15matlab怎么繪制云圖?MATLAB在矩形、圓形區(qū)域繪制云圖的方法介紹
Matlab是一款非常有名的數(shù)學(xué)軟件,最近,很多網(wǎng)友問小編matlab怎么繪制云圖?今天小編就給大家詳細(xì)介紹一下MATLAB在矩形、圓形區(qū)域繪制云圖的方法步驟,需要的朋友歡迎借鑒2018-04-09如何在matlab路徑中安裝yalmip Matlab R2014a添加yalmip圖文教程
最近,很多網(wǎng)友問小編如何在matlab路徑中安裝yalmip?今天小編就給大家?guī)鞰atlab R2014a添加yalmip圖文教程,文章步驟清晰,同時提供yalmip工具箱下載,需要的朋友歡迎借2018-07-24Matlab R2016a怎么安裝?Matlab2016a破解激活詳細(xì)安裝教程(附下載)
Matlab R2016a破解版是一款全球最強大、最實用的數(shù)學(xué)軟件之一,擁有其他軟件無法比擬的優(yōu)勢、龐大的用戶群、超多/實用的教程,本文下面就帶來Matlab R2016a激活破解詳細(xì)圖2018-08-20MathWorks Matlab R2018b(V9.5)破解版密鑰安裝+許可激活詳細(xì)教程(含下
Matlab R2018b破解版是一款由MathWorks公司推出的全球最強大、最實用超強商業(yè)數(shù)學(xué)軟件,新版為大家?guī)砹巳鹿δ芎透倪M,本文主要為大家詳細(xì)介紹Matlab R2018b破解版密鑰2018-09-19Matlab R2019b 64位中文完美激活安裝詳細(xì)教程(附密鑰+許可文件下載)
Matlab R2019b中文激活版是一款MathWorks公司推出的著名商業(yè)數(shù)學(xué)軟件,是應(yīng)用程序構(gòu)建、腳本編寫和團隊軟件開發(fā)的新工具,這里提供最新Matlab R2019激活版的安裝教程,以及2022-05-20- MATLAB如何畫分段函數(shù)的圖像?下文小編就為大家?guī)碓敿?xì)的畫分步驟,感興趣的朋友可以一起看看2019-12-04
MathWorks Matlab R2020a(V9.8)密鑰安裝+永久激活詳細(xì)教程(含下載)
Matlab R2020a是由MathWorks開發(fā)的全球最強大、最實用超強商業(yè)數(shù)學(xué)軟件,本文主要為大家?guī)砹薓atlab 2020a安裝教程+永久激活方法,并附上Matlab 2020a官方原版 + 激活補丁2020-03-27MathWorks MATLAB R2020b詳細(xì)密鑰安裝教程(附許可下載)
MATLAB R2020b是一款全球最強大且最實用超強商業(yè)數(shù)學(xué)軟件,MATLAB允許矩陣操作,函數(shù)和數(shù)據(jù)繪圖,算法實現(xiàn),用戶界面創(chuàng)建等,這里整理了最新MATLAB R2020b許可證激活方法,2020-09-22MathWorks Matlab R2021a中文版永久激活詳細(xì)教程(含下載+密鑰)
matlab2021a是由美國知名企業(yè)MathWorks打造的一款非常專業(yè)且強大的商業(yè)數(shù)學(xué)軟件,今天小編為大家?guī)砹嗽敿?xì)的破解教程與文件,需要的朋友一起看看吧2021-03-15