從tt檔案裡讀取資料到matlab裡

時間 2022-03-14 22:46:32

1樓:匿名使用者

根據txt文件不同種類介紹不同的讀取資料方法;

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

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

三、中文 資料 英文 混亂如test.txt;

方法一:

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 =

'你好'

'歡迎來到'

'論壇'

'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

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 % 如果是非數字繼續下一次迴圈

endendfclose(fidout);

mk=importdata('mkmatlab.txt'); % 將生成的mkmatlab.txt檔案匯入工作空間,變數名為mk,實際上它不顯示出來

>> mk

2樓:匿名使用者

% 開啟檔案(注意修改檔名)

fid = fopen('480684994.txt','rt');

if fid == 0, return, end

% 讀檔案直到結束

while ~feof(fid)

% 每次讀入一行

s = fgetl(fid);

% 以空格作為資料項的分隔符

% 注意:

% 資料格式必須滿足以下要求,否則需要改寫**

% 1、資料的分隔符必須是空格;

% 2、資料項例如「1:0.007477」裡面不可以有空格

idx = [0 find(s==' ') length(s)+1];

% 第一項資料

a = ;

a(1) = str2num( s(1:idx(2)-1) );

% 捨去第二列,所以從第三列開始處理

for i = 3 : length(idx) - 1

% 每項有效資料必須包含乙個「:」

str = s( idx(i)+1 : idx(i+1) - 1 );

iidx = find( str == ':' );

if length(iidx) ~= 1, continue, end

a(end+1) = str2num( str(iidx+1:end) );

end% 本行讀入的結果儲存在變數a中,後續如何處理請自行完成

aend

% 關閉檔案

fclose(fid);

3樓:匿名使用者

到底怎麼複雜?給個例子看看

4樓:蕭_湄姍

先將所有資料讀入到matlab中儲存,然後在matlab中對這些資料在進行處理,你看行不行?

matlab怎樣從文字txt檔案中讀入資料到矩陣

5樓:大野瘦子

% 開啟檔案(注意修改檔名)

fid = fopen('480684994.txt','rt');

if fid == 0, return, end% 讀檔案直到結束

while ~feof(fid)

% 每次讀入一行

s = fgetl(fid);

% 以空格作為資料項的分隔符

6樓:

以matlab r2012b為例。

首先開啟matlab;

選擇current folder並加入當前路徑;

選擇指定的txt檔案,右鍵,選擇匯入資料;

選擇相應的資料型別,這裡應選matrix。

具體如下圖所示:

開始匯入資料

匯入資料

7樓:劉陽公升

用load,textread或者importdata文字(txt)格式的檔案,只能識別資料,對其中的文字無法讀取。

可以使用fscanf或者sscanf的方式讀取,

思路為:定義cell矩陣,先全部以字元的方式讀入,再將其中的數字轉換為資料格式。

**如下:

m=8;n=3;

data=cell(m,n);%定義cell矩陣,儲存檔案內容

fid=fopen('test.txt','r');%以唯讀方式開啟檔案

for i=1:m

for j=1:n

data=fscanf(fid,'%s',[1,1]);%以字元方式讀取每個值,遇空格完成每個值的讀取

endend

fclose (fid);

for i=1:m

for j=2:n

data=str2double(data);%將文字格式轉為數字格式

endend

str=cell(m,1);用於儲存data的第一列

for i=1:m

str=data;end

8樓:匿名使用者

你這第一列不是數字格式吧?

9樓:

可以試試dlmread函式

如何使用matlab讀取txt檔案中的資料並繪圖

10樓:匿名使用者

由於你寫的作抄圖要求不是很清楚 所以我就假設你是需要讀取txt資料然後每個數值在影象中是乙個點 我把你的txt資料命名稱testingdata 你可以根據自己的檔案儲存名字修改這裡的名字

clear;

fid3=textread('testingdata.txt', '%n', 'whitespace', '');

[m,n]=size(fid3);

ox=1:m;

figure;

plot(ox,fid3,'*');

grid on;

11樓:湖墩

可以先用fopen函式打抄開乙個

襲檔案(不僅僅可以開啟txt檔案格式),其開啟格式可以參看matlab關於fopen的help

返回乙個檔案標識,然後通過fread或者fscanf函式對開啟的檔案進行讀取操作,讀取出來的便是你原檔案中儲存的資料了,就可以進行下一步處理了

12樓:匿名使用者

[filename,pathname] = uigetfile('*.txt',...

'select the data file');

file=fullfile(pathname,filename);

data=load(file);

%plot(data(1,:),data(2,:))%你的資料

是一列數內據吧

容[m,n]=size(data);

plot([1:n],data(1:n))

13樓:匿名使用者

去51matlab論壇看看吧,上面有個版專門說畫圖的

14樓:匿名使用者

你的資料代表什麼,

哪些是x,哪些是y

matlab讀取txt檔案中的資料存為矩陣

15樓:

1、開啟乙個txt檔案,會發現他既有字元又有數值。

2、此時將字元全部刪除,只留下有用的資料數值。

3、記住該資料夾的位址,一會要作為路徑用於matlab讀取。

4、此時使用乙個textread函式,函式內部代入剛才的txt檔案路徑。

5、textread函式會把這些資料讀成1為向量。我們將其分為兩列,用x和y代表,儲存為矩陣。

16樓:du瓶邪

1)開啟檔案

在讀寫檔案之前,必須先用fopen函式開啟或建立檔案,並指定對該檔案進行的操作方式。fopen函式的呼叫格式為:

fid=fopen(檔名,『開啟方式』)

說明:其中fid用於儲存檔案控制代碼值,如果返回的控制代碼值大於0,則說明檔案開啟成功。檔名用字串形式,表示待開啟的資料檔案。常見的開啟方式如下:

 『r』:唯讀方式開啟檔案(預設的方式),該檔案必須已存在。

 『r+』:讀寫方式開啟檔案,開啟後先讀後寫。該檔案必須已存在。

 『w』:開啟後寫入資料。該檔案已存在則更新;不存在則建立。

 『w+』:讀寫方式開啟檔案。先讀後寫。該檔案已存在則更新;不存在則建立。

 『a』:在開啟的檔案末端新增資料。檔案不存在則建立。

 『a+』:開啟檔案後,先讀入資料再新增資料。檔案不存在則建立。

另外,在這些字串後新增乙個「t」,如『rt』或『wt+』,則將該檔案以文字方式開啟;如果新增的是「b」,則以二進位制格式開啟,這也是fopen函式預設的開啟方式。

2)關閉檔案

檔案在進行完讀、寫等操作後,應及時關閉,以免資料丟失。關閉檔案用fclose函式,呼叫格式為:

sta=fclose(fid)

說明:該函式關閉fid所表示的檔案。sta表示關閉檔案操作的返回**,若關閉成功,返回0,否則返回-1。如果要關閉所有已開啟的檔案用fclose(『all』)。

2、二進位制檔案的讀寫操作

1)寫二進位制檔案

fwrite函式按照指定的資料精度將矩陣中的元素寫入到檔案中。其呼叫格式為:

count=fwrite(fid,a,precision)

說明:其中count返回所寫的資料元素個數(可預設),fid為檔案控制代碼,a用來存放寫入檔案的資料,precision代表資料精度,常用的資料精度有:char、uchar、int、long、float、double等。

預設資料精度為uchar,即無符號字元格式。

例6.8 將乙個二進位制矩陣存入磁碟檔案中。

>> a=[1 2 3 4 5 6 7 8 9];

>> fid=fopen('d:\test.bin','wb') %以二進位制資料寫入方式開啟檔案

fid =

3 %其值大於0,表示開啟成功

>> fwrite(fid,a,'double')

ans =

9 %表示寫入了9個資料

>> fclose(fid)

ans =

0 %表示關閉成功

2)讀二進位制檔案

fread函式可以讀取二進位制檔案的資料,並將資料存入矩陣。其呼叫格式為:

[a,count]=fread(fid,size,precision)

說明:其中a是用於存放讀取資料的矩陣、count是返回所讀取的資料元素個數、fid為檔案控制代碼、size為可選項,若不選用則讀取整個檔案內容;若選用則它的值可以是下列值:n(讀取n個元素到乙個列向量)、inf(讀取整個檔案)、[m,n](讀資料到m×n的矩陣中,資料按列存放)。

precision用於控制所寫資料的精度,其形式與fwrite函式相同。

3、文字檔案的讀寫操作

1)讀文字檔案

fscanf函式可以讀取文字檔案的內容,並按指定格式存入矩陣。其呼叫格式為:

[a,count]=fscanf(fid,format,size)

說明:其中a用來存放讀取的資料,count返回所讀取的資料元素個數,fid為檔案控制代碼,format用來控制讀取的資料格式,由%加上格式符組成,常見的格式符有:d(整型)、f(浮點型)、s(字串型)、c(字元型)等,在%與格式符之間還可以插入附加格式說明符,如資料寬度說明等。

size為可選項,決定矩陣a中資料的排列形式,它可以取下列值:n(讀取n個元素到乙個列向量)、inf(讀取整個檔案)、[m,n](讀資料到m×n的矩陣中,資料按列存放)。

2)寫文字檔案

fprintf函式可以將資料按指定格式寫入到文字檔案中。其呼叫格式為:

fprintf(fid,format,a)

說明:fid為檔案控制代碼,指定要寫入資料的檔案,format是用來控制所寫資料格式的格式符,與fscanf函式相同,a是用來存放資料的矩陣。

例6.9 建立乙個字元矩陣並存入磁碟,再讀出賦值給另乙個矩陣。

>> 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的資料讀到f中。其中f是[12 90]的矩陣

%這裡'%f %f'表示讀取資料的形勢,他是按原始資料型讀出

fclose(fid);

%關閉檔案

另外有的txt檔案還可以用load來開啟

其語句為

f=load('fx.txt)

乙個寫入txt檔案的小例子:

n=100;

r=rand(1,n);

fid = fopen('tt.txt','wt');

for k=1:n;

p=num2str(r(k));

fprintf(fid,'%c',p);

fprintf(fid,'%c\n',' ');

endfclose(fid);

vb如何從檔案裡讀取出數字,vb 如何從TXT檔案裡讀取出數字

用split 用2次就可以了 假如資料都存在str變數裡面 第一次把每行分開 temp split str,vbcrlf a split temp 0 b split temp 1 c split temp 2 結果為a的陣列為 1,2,3 b的陣列為 2,3,4 c的陣列為 123,234,543...

從光碟裡複製的映像檔案怎麼在電腦裡開啟

1 首先把光碟放入自己電腦的光碟機中。2 開啟電腦的計算機視窗找到光碟機。3 在光碟機上單擊滑鼠右鍵,然後選擇開啟按鈕。4 這時可以看到我們光碟機中的所有檔案。5 可以選擇一些檔案複製在自己的電腦上,如果想把光碟機上的所有檔案複製到電腦中,這裡用滑鼠拖動選擇所有檔案,然後在乙個檔案上,單擊滑鼠右鍵點...