欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

CSDN   發(fā)布時(shí)間:2023-07-06 11:44:18   作者:凌霜雪   我要評(píng)論
matlab如何讀取txt文本數(shù)據(jù)?今天我們主要介紹了matlab如何讀取txt文件相關(guān)的知識(shí),詳細(xì)請(qǐng)看下文介紹

如何編寫MATLAB程序才能實(shí)現(xiàn)對(duì).TXT文檔的讀寫呢?

MATLAB提供了一系列低層輸入輸出函數(shù),專門用于文件操作。本文提供了幾種Matlab讀寫文件的方法和預(yù)寫的腳本。

Matlab讀取 .txt文件

這里提供兩種方法:

  • 1,load()函數(shù)
  • 2,importdata()函數(shù)

一、對(duì)于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
%對(duì)于類似的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')

二、對(duì)于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; %若沒(méi)有這一步,出不出來(lái)圖。
x=data2(:,1);
y1=data2(:,2);
y2=data2(:,3);
y3=data2(:,4);
plot(x,y1,'r--',x,y2,'bo',x,y3,'ks');

1、文件的打開(kāi)與關(guān)閉

1)打開(kāi)文件

在讀寫文件之前,必須先用fopen函數(shù)打開(kāi)或創(chuàng)建文件,并指定對(duì)該文件進(jìn)行的操作方式。fopen函數(shù)的調(diào)用格式為:

fid=fopen(文件名,‘打開(kāi)方式’)

說(shuō)明:其中fid用于存儲(chǔ)文件句柄值,如果返回的句柄值大于0,則說(shuō)明文件打開(kāi)成功。文件名用字符串形式,表示待打開(kāi)的數(shù)據(jù)文件。常見(jiàn)的打開(kāi)方式如下:

‘r’:只讀方式打開(kāi)文件(默認(rèn)的方式),該文件必須已存在。
‘r+’:讀寫方式打開(kāi)文件,打開(kāi)后先讀后寫。該文件必須已存在。
‘w’:打開(kāi)后寫入數(shù)據(jù)。該文件已存在則更新;不存在則創(chuàng)建。
‘w+’:讀寫方式打開(kāi)文件。先讀后寫。該文件已存在則更新;不存在則創(chuàng)建。
‘a(chǎn)’:在打開(kāi)的文件末端添加數(shù)據(jù)。文件不存在則創(chuàng)建。
‘a(chǎn)+’:打開(kāi)文件后,先讀入數(shù)據(jù)再添加數(shù)據(jù)。文件不存在則創(chuàng)建。

另外,在這些字符串后添加一個(gè)“t”,如‘rt’或‘wt+’,則將該文件以文本方式打開(kāi);如果添加的是“b”,則以二進(jìn)制格式打開(kāi),這也是fopen函數(shù)默認(rèn)的打開(kāi)方式。

2)關(guān)閉文件

文件在進(jìn)行完讀、寫等操作后,應(yīng)及時(shí)關(guān)閉,以免數(shù)據(jù)丟失。關(guān)閉文件用fclose函數(shù),調(diào)用格式為:

sta=fclose(fid)

說(shuō)明:該函數(shù)關(guān)閉fid所表示的文件。sta表示關(guān)閉文件操作的返回代碼,若關(guān)閉成功,返回0,否則返回-1。如果要關(guān)閉所有已打開(kāi)的文件用fclose(‘all’)。

2、二進(jìn)制文件的讀寫操作

1)寫二進(jìn)制文件

fwrite函數(shù)按照指定的數(shù)據(jù)精度將矩陣中的元素寫入到文件中。其調(diào)用格式為:

COUNT=fwrite(fid,A,precision)

說(shuō)明:其中COUNT返回所寫的數(shù)據(jù)元素個(gè)數(shù)(可缺?。琭id為文件句柄,A用來(lái)存放寫入文件的數(shù)據(jù),precision代表數(shù)據(jù)精度,常用的數(shù)據(jù)精度有:char、uchar、int、long、float、double等。缺省數(shù)據(jù)精度為uchar,即無(wú)符號(hào)字符格式。

例6.8 將一個(gè)二進(jìn)制矩陣存入磁盤文件中。 

a=[1 2 3 4 5 6 7 8 9];
fid=fopen(‘d:\test.bin’,‘wb’) %以二進(jìn)制數(shù)據(jù)寫入方式打開(kāi)文件
fid =
3 %其值大于0,表示打開(kāi)成功
fwrite(fid,a,‘double’)
ans =
9 %表示寫入了9個(gè)數(shù)據(jù)
fclose(fid)
ans =
0 %表示關(guān)閉成功

2)讀二進(jìn)制文件

fread函數(shù)可以讀取二進(jìn)制文件的數(shù)據(jù),并將數(shù)據(jù)存入矩陣。其調(diào)用格式為:

[A,COUNT]=fread(fid,size,precision)

說(shuō)明:其中A是用于存放讀取數(shù)據(jù)的矩陣、COUNT是返回所讀取的數(shù)據(jù)元素個(gè)數(shù)、fid為文件句柄、size為可選項(xiàng),若不選用則讀取整個(gè)文件內(nèi)容;若選用則它的值可以是下列值:N(讀取N個(gè)元素到一個(gè)列向量)、inf(讀取整個(gè)文件)、[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)

說(shuō)明:其中A用來(lái)存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù),fid為文件句柄,format用來(lái)控制讀取的數(shù)據(jù)格式,由%加上格式符組成,常見(jiàn)的格式符有:d(整型)、f(浮點(diǎn)型)、s(字符串型)、c(字符型)等,在%與格式符之間還可以插入附加格式說(shuō)明符,如數(shù)據(jù)寬度說(shuō)明等。size為可選項(xiàng),決定矩陣A中數(shù)據(jù)的排列形式,它可以取下列值:N(讀取N個(gè)元素到一個(gè)列向量)、inf(讀取整個(gè)文件)、[M,N](讀數(shù)據(jù)到M×N的矩陣中,數(shù)據(jù)按列存放)。

2)寫文本文件

fprintf函數(shù)可以將數(shù)據(jù)按指定格式寫入到文本文件中。其調(diào)用格式為:

fprintf(fid,format,A)

說(shuō)明:fid為文件句柄,指定要寫入數(shù)據(jù)的文件,format是用來(lái)控制所寫數(shù)據(jù)格式的格式符,與fscanf函數(shù)相同,A是用來(lái)存放數(shù)據(jù)的矩陣。

例6.9 創(chuàng)建一個(gè)字符矩陣并存入磁盤,再讀出賦值給另一個(gè)矩陣。 

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');
%得到文件號(hào)
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件號(hào)1的數(shù)據(jù)讀到f中。其中f是[12 90]的矩陣
%這里'%f %f'表示讀取數(shù)據(jù)的形勢(shì),他是按原始數(shù)據(jù)型讀出
fclose(fid);
%關(guān)閉文件

另外有的txt文件還可以用load來(lái)打開(kāi)

其語(yǔ)句為

f=load('xxx.txt')

這里推薦用第一種方式較好。因?yàn)橛行r(shí)候,特別是xxx.txt 的一行種有多個(gè)數(shù)據(jù)時(shí)用load就比較麻煩。而第一種方法可以批量導(dǎo)入文件。

matlab的文件讀取函數(shù)功能可以讀取各種文件類型,包括

  • textread(字母和數(shù)值每行格式一致)
  • xlsread(讀取excel文件)
  • importdata(字母和數(shù)值分開(kāi),以數(shù)字為主,字母只存在前幾行)
  • load(純數(shù)據(jù))
  • dlmread(單一分隔符的純數(shù)據(jù)或ASCII數(shù)據(jù)文件)
  • textscan(類似于textread,但使用前必須fopen打開(kāi)文件)
  • csvread(類似于xlsread,讀取.csv格式的文件)
  • fscanf(讀取已知文件格式的文本文件)

matlab對(duì)文件中混亂的文本格式讀取操作總結(jié)

對(duì)于本文字符數(shù)字較為混亂的文本進(jìn)行文本操作需要對(duì)文件內(nèi)部進(jìn)行操作,包括文本位置指針,文件逐行讀取,字符匹配等等復(fù)雜操作。主要用到的幾個(gè)函數(shù)有

  • feek(設(shè)置指針位置)
  • ftell(獲得指針位置)
  • frewind(重設(shè)指針到文件起始位置)
  • feof(測(cè)試指針是否在文件結(jié)束位置)

具體用法:

  • fseek(fid,-1,’eof’),指針到末尾
  • fseek(fid,2,’bof’),起始位置后第二個(gè)字符位置
  • ftell(fid);找到指針位置
  • frewind(fid),指針回到起始
  • feof(fid)判斷指針是否在末尾

以上就是matlab讀取txt文件的技巧,希望大家喜歡,請(qǐng)繼續(xù)關(guān)注腳本之家。

相關(guān)推薦:

MATLAB怎么讀取Excel文件表格中的數(shù)據(jù)? Matlab讀取Excel文件指南

matlab中怎么求矩陣的轉(zhuǎn)置? matlab矩陣轉(zhuǎn)置命令使用技巧

相關(guān)文章

最新評(píng)論