版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四講MATLAB文件操作Matlab文件輸入、輸出〔I/O〕函數(shù)允許把其它格式的數(shù)據(jù)文件直接讀進(jìn)matlab.它是以C語(yǔ)言文件I/O函數(shù)為根底的。2024/1/2612024/1/262文件數(shù)據(jù)格式有兩種形式,一是二進(jìn)制文件,二是文本文件。在翻開(kāi)文件時(shí)需要進(jìn)一步指定文件格式類(lèi)型,即指定是二進(jìn)制文件還是文本文件。4.1文件的翻開(kāi)與關(guān)閉2024/1/2622024/1/2634.1.1文件的翻開(kāi)fopen函數(shù)的調(diào)用格式為:
fid=fopen(文件名,翻開(kāi)方式)
其中,文件名用字符串形式,表示待翻開(kāi)的數(shù)據(jù)文件。常見(jiàn)的翻開(kāi)方式有:‘r’表示對(duì)翻開(kāi)的文件讀出數(shù)據(jù),‘w’表示對(duì)翻開(kāi)的文件寫(xiě)入數(shù)據(jù),‘a(chǎn)’表示在翻開(kāi)的文件末尾添加數(shù)據(jù)。假設(shè)文件沒(méi)有,先創(chuàng)立一個(gè)空文件。
fid用于存儲(chǔ)文件句柄值,句柄值用來(lái)標(biāo)識(shí)該數(shù)據(jù)文件,其他函數(shù)可以利用它對(duì)該數(shù)據(jù)文件進(jìn)行操作。fid=fopen('std.dat','r')2024/1/263翻開(kāi)文件使用fopen翻開(kāi)文件:fid=fopen('Ex0805.txt',‘r')%翻開(kāi)文件讀寫(xiě)fid=3fid=fopen('Ex0805',‘r')fid=fopen('Ex0805.txt',‘w')fid=fopen('Ex0805',‘w')注意:把文件所在路徑必須設(shè)為當(dāng)前路徑r:只讀方式翻開(kāi)文件〔默認(rèn)的方式〕,該文件必須已存在。r+:讀寫(xiě)方式翻開(kāi)文件,翻開(kāi)后先讀后寫(xiě)。該文件必須已存在2024/1/264w:翻開(kāi)后寫(xiě)入數(shù)據(jù)。該文件已存在那么更新;不存在那么創(chuàng)立。w+:讀寫(xiě)方式翻開(kāi)文件。先讀后寫(xiě)。該文件已存在那么更新;不存在那么創(chuàng)立。a:在翻開(kāi)的文件末端添加數(shù)據(jù)。文件不存在那么創(chuàng)立。a+:翻開(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)方式。
2024/1/2652024/1/266文件在進(jìn)行完讀出、寫(xiě)入等操作后,應(yīng)及時(shí)關(guān)閉,以保證文件的平安可靠。關(guān)閉文件用fclose函數(shù),格式為:
sta=fclose(fid)
該函數(shù)關(guān)閉fid所表示的文件。sta表示關(guān)閉文件操作的返回代碼,假設(shè)關(guān)閉成功,返回0,否那么返回–1。4.1.2文件的關(guān)閉2024/1/266關(guān)閉文件使用fclose關(guān)閉文件:fid=fopen('Ex0805','w') %翻開(kāi)文件讀寫(xiě)fid=3fid=fopen('Ex0805',‘r')
sta=fclose(fid)%關(guān)閉文件sta=02024/1/2672024/1/2684.2文件的讀寫(xiě)操作4.2.1二進(jìn)制文件的讀寫(xiě)操作
1.讀二進(jìn)制文件
fread函數(shù)可以讀取二進(jìn)制文件的數(shù)據(jù),并將數(shù)據(jù)存入矩陣。其調(diào)用格式為:
[A,COUNT]=fread(fid,size,precision)
其中A用于存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù),fid為文件句柄,2024/1/2682024/1/269size為可選項(xiàng),假設(shè)不選用,那么讀取整個(gè)文件內(nèi)容,假設(shè)選用,那么它的值可以是以下值:(1)N:表示讀取N個(gè)元素到一個(gè)列向量。
(2)Inf:表示讀取整個(gè)文件。
(3)[M,N]:表示讀數(shù)據(jù)到M×N的矩陣中,數(shù)據(jù)按列存放。
precision代表讀寫(xiě)數(shù)據(jù)的類(lèi)型
fid=fopen('std.dat','r');[A,COUNT]=fread(fid,3,‘long’);sta=fclose(fid)2024/1/2692024/1/26102.寫(xiě)二進(jìn)制文件
fwrite函數(shù)按照指定的數(shù)據(jù)類(lèi)型將矩陣中的元素寫(xiě)入到文件中。和fread相反。其調(diào)用格式為:
COUNT=fwrite(fid,A,precision)
其中,COUNT返回所寫(xiě)的數(shù)據(jù)元素個(gè)數(shù),fid為文件句柄,A用來(lái)存放寫(xiě)入文件的數(shù)據(jù),precision用于控制所寫(xiě)數(shù)據(jù)的類(lèi)型,其形式與fread函數(shù)相同。2024/1/2610例:建立一數(shù)據(jù)文件test.dat,用于存放矩陣A的數(shù)據(jù)>>A=[-0.6515-0.2727-0.4354-0.3190-0.9047-0.7534-0.4567-0.3212-0.4132-0.3583-0.9264-0.8173-0.7823-0.3265-0.0631-0.1735-0.7373-0.0972-0.3267-0.6298-0.4768-0.6773-0.6574-0.1923-0.4389]Fid=fopen(‘test.dat’,‘w’)cnt=fwrite(Fid,A,‘float’)%把矩陣A寫(xiě)入文件fclose(Fid)程序段將矩陣A的數(shù)據(jù)以二進(jìn)制浮點(diǎn)數(shù)格式寫(xiě)入文件test.dat中。Fid=fopen(‘test.dat’,‘r’)[B,cnt]=fread(Fid,[5,5],‘float’)fclose(Fid)讀取文件test.dat的內(nèi)容。2024/1/26112024/1/26124.2.2文本文件的讀寫(xiě)操作
1.讀文本文件
fscanf函數(shù)的調(diào)用格式為:〔類(lèi)似fread)
[A,COUNT]=fscanf(fid,format,size)
其中,A用以存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù)。fid為文件句柄。format用以控制讀取的數(shù)據(jù)格式,由%加上格式符組成,常見(jiàn)的格式符有d,f,s。size為可選項(xiàng),決定矩陣A中數(shù)據(jù)的排列形式。例如:s=fscanf(fid,‘%s’)讀取一個(gè)字符串a(chǎn)=fscanf(fid,‘%5d’)讀取5位數(shù)的整數(shù)b=fscanf(fid,‘%6.2d’)讀取浮點(diǎn)數(shù)比較:[A,COUNT]=fread(fid,size,precision)二進(jìn)制2024/1/26122024/1/2613
2.寫(xiě)文本文件
fprintf函數(shù)的調(diào)用格式為:
COUNT=fprintf(fid,format,A)
其中,A存放要寫(xiě)入文件的數(shù)據(jù)。先按format指定的格式將數(shù)據(jù)矩陣A格式化,然后寫(xiě)入到fid所指定的文件。格式符與fscanf函數(shù)相同。即Afid比較:COUNT=fwrite(fid,A,precision)
二進(jìn)制,precision數(shù)據(jù)類(lèi)型2024/1/2613例:建立一數(shù)據(jù)文本文件txt.dat,用于存放矩陣A的數(shù)據(jù)>>A=[-0.6515-0.2727-0.4354-0.3190-0.9047-0.7534-0.4567-0.3212-0.4132-0.3583-0.9264-0.8173-0.7823-0.3265-0.0631-0.1735-0.7373-0.0972-0.3267-0.6298-0.4768-0.6773-0.6574-0.1923-0.4389]Fid=fopen('txt.dat’,'w')COUNT=fprintf(Fid,'%f%f%f%f%f\n',A)為何用5個(gè)%f呢?fclose(Fid)程序段將矩陣A的數(shù)據(jù)以二進(jìn)制浮點(diǎn)數(shù)格式寫(xiě)入文件txt.dat中。Fid=fopen(‘txt.dat’,‘r’)[A,COUNT]=fscanf(Fid,'%f',[55])fclose(Fid)讀取文件txt.dat的內(nèi)容。2024/1/2614>>[A,COUNT]=fscanf(Fid,'%f',[55])A=-0.6515-0.2727-0.4354-0.3190-0.9047-0.7534-0.4567-0.3212-0.4132-0.3583-0.9264-0.8173-0.7823-0.3265-0.0631-0.1735-0.7373-0.0972-0.3267-0.6298-0.4768-0.6773-0.6574-0.1923-0.4389矩陣中的數(shù)據(jù)是按列排列的。存儲(chǔ)的時(shí)候也是按列排列。硬盤(pán)中‘txt.dat’的內(nèi)容:Matlab讀入后A的內(nèi)容:2024/1/2615計(jì)算當(dāng)x=[01]時(shí)f(x)=exp(x)的值,并將結(jié)果寫(xiě)入到文件my.txt中。程序
x=0:0.1:1;y=[x;exp(x)];%y有兩行數(shù)據(jù)fid=fopen('E:\my.txt','w');
fprintf(fid,‘%6.2f%12.8f\n’,y);
%把y數(shù)據(jù)寫(xiě)入到fidfclose(fid);typeE:\my.txt2024/1/2616這是浮點(diǎn)數(shù)輸出格式,如:%6.2f表示無(wú)論結(jié)果有多少位,輸出結(jié)果至少占六個(gè)制表符,即六個(gè)位置,不夠的用空格補(bǔ)滿,可以超過(guò),且保存兩位小數(shù)位。同理,%12.8f占十二個(gè)位置,八位小數(shù)。%d整數(shù)%e實(shí)數(shù):科學(xué)計(jì)算法形式%f實(shí)數(shù):小數(shù)形式%g由系統(tǒng)自動(dòng)選取上述兩種格式之一%s輸出字符串2024/1/26174.3讀寫(xiě)格式化文件4.3.1fgetl和fgetsfgetl和fgets命令都是用來(lái)讀取文件的下一行,兩者的差異是fgetl會(huì)舍去換行符,而fgets那么保存換行符。語(yǔ)法: tline=fgetl(fid)%讀取文件的下一行,不包括換行符 tline=fgets(fid)%讀取文件的下一行,包括換行符 tline=fgets(fid,nchar)%限制讀取文件字符個(gè)數(shù)說(shuō)明:fid為文件句柄;tline為以字符串形式的返回值,如果到文件末尾那么返回-1;nchar為最多返回的字符個(gè)數(shù)。2024/1/2618讀寫(xiě)格式化文件【例】以行的形式讀取Ex0805.txt文件。建立一文本文件Ex0805.txt(可利用記事本,寫(xiě)字板,word等〕typeEx0805.txta123b456Thisisaexample.fid=fopen(‘Ex0805.txt’,‘r’);%翻開(kāi)Ex0803.txt文件只讀fgetl(fid)ans=a123fgets(fid)ans=b456%體會(huì)有何區(qū)別呢?fgets(fid,10)%讀取第三行數(shù)據(jù),限制10個(gè)字符ans=%Thisisafgets(fid,10)ans=example.2024/1/2619
讀寫(xiě)格式化文件4.3.2textread
[A,B,C,...]=textread(filename,format)[A,B,C,...]=textread(filename,format,N)其中filename就是文件名,format就是要讀取的格式,A,B,C就是從文件中讀取到的數(shù)據(jù)。注意:中括號(hào)里面變量的個(gè)數(shù)必須和format中定義的個(gè)數(shù)相同。textread(filename,format,N)的語(yǔ)法,讀取N次。>>typeE:\my.txt?>>[a1a2]=textread('E:\my.txt','%s%f')?這樣文件my.txt中的每列分別讀入變量a1、a2。
2024/1/2620myfile.txt中的內(nèi)容如下:1
2
3
45
6
7
89
10
1112相應(yīng)的語(yǔ)句為:[data1,data2,data3,data4]=textread('myfile.txt',
'%n%n%n%n');2024/1/2621假設(shè)有數(shù)據(jù)文件my_data.txtnum1num2num3num40.32420.43240.34550.67540.45660.93680.98920.92740.46580.28320.93730.8233[num1num2num3num4]=textread('my_data.txt','%f%f%f%f','headerlines',1)執(zhí)行結(jié)果:num1=0.32420.45660.4658num2=0.43240.93680.2832num3=0.34550.98920.9373num4=0.67540.92740.82332024/1/2622假設(shè)數(shù)據(jù)文件中包含了字母和數(shù)值混合的二進(jìn)制數(shù)據(jù),也可以使用函數(shù)textread來(lái)讀取數(shù)據(jù)。JoegradeA4.9passsusangradeD2.0fail[namegragradesanswer]=textread('my_exam.dat','%s%s%f%s')name='Joe''susan'gra='gradeA''gradeD'grades=4.90002.0000answer='pass''fail'2024/1/2623另外,textread函數(shù)可以有選擇地讀取數(shù)據(jù),比方我們不需要取出中間幾列數(shù),只取出第一列和最后一列數(shù)據(jù),[nameanswer]=textread('my_exam.dat','%s%*s%*f%s')name='Joe''susan'answer='pass''fail'2024/1/2624假設(shè)文件采用的分隔符不是空格,那么必須使用函數(shù)textread,將該分隔符作為它的參數(shù)。例如,假設(shè)文件my_exam1.dat使用分號(hào)作為分隔符,那么讀入該文件需使用如下命令:[namegragradesans]=textread('my_exam1.dat','%s%s%f%s','delimiter',';')結(jié)果和前面一樣2024/1/26254.3.3textscan用法對(duì)于具有多行文字說(shuō)明文本數(shù)據(jù)文件,最好用textscan或者fscanf讀取.C=textscan(fid,'format')C=textscan(fid,'format',N)特征:textscan更適合讀入大文件;
textscan可以從文件的任何位置開(kāi)始讀入,而textread只能從文件開(kāi)頭開(kāi)始讀入;
textscan從上一次textscan結(jié)束的位置開(kāi)始讀入,具有連續(xù)性,而textread不能;
textscan只返回一個(gè)數(shù)組〔其實(shí)應(yīng)該說(shuō)是一個(gè)元胞數(shù)組〕,而textread要返回多個(gè)數(shù)組;
2024/1/2626%先建立文本文件test1.txttype
c:\test1.txt
a1a212file=fopen(‘c:\test1.txt’,‘r’)
;str1=textscan(file,'%s',2)
str1={2x1cell}%這是返回一元胞數(shù)組2024/1/2627str1{1}%元胞數(shù)組的內(nèi)容,注意str1為1x1ans=
'a1'
'a2‘da=textscan(file,'%f',[34]);
da{1}%元胞數(shù)組的內(nèi)容,注意da為1x1ans=
1
2由于da是元胞數(shù)據(jù),可將其轉(zhuǎn)換為實(shí)數(shù)型。>>cell2mat(da)ans=
1
22024/1/2628如果數(shù)據(jù)文件中有間隔符,而需要忽略間隔符,咋辦?>>typec:\test3.txt%利用寫(xiě)字板,保存為文本文檔1
,1
,232
,3
,4>>tt=fopen('c:\test3.txt');>>var=textscan(tt,'%f
%f%f','delimiter',',')
%忽略‘,’>>aa=cell2mat(var)%注意格式符必須緊湊aa=
1
1
2
32
3
4>>fclose(tt)2024/1/2629typec:\test2.txt2536
235
19546
>>fid=fopen('c:\test2.txt');>>fori=1:3a{i}=fgets(fid);end>>a>>aa=cell2mat(a)>>fclose(fid)2024/1/2630mydata1.txt文件如下
SallyLevel112.34451.23e10infNanYes5.1+3i
Joe
Level223.54609e19-inf
0.001No2.2-1.5i
Bill
Level334.90122e5
10
100
No3.1+1.1i
讀入:>>fid=fopen(‘mydata1.txt’);
>>C=textscan(fid,‘%s%s%f%u%f%f%s%f%f’);%不一定適宜>>celldisp(C)>>fclose(fid);2024/1/2631>>CC=
Columns1through5{3x1cell}
{3x1cell}
[3x1single]
[3x1int8]
[3x1uint32]
Columns6through9
[3x1double]
[3x1double]
{3x1cell}
[3x1double]
輸出C為1*9的細(xì)胞數(shù)組,每個(gè)數(shù)組中存放每列的數(shù)據(jù)2024/1/2632對(duì)于myfileli6.txt
SallyType112.3445Yes
JoeType223.5460No
BillType134.9012No>>fid=fopen('myfileli6.txt');
>>data=textscan(fid,'%s%s%f%f%s');>>celldisp(data)2024/1/2633scan1.txt如下
09/12/2005Level112.34451.23e10infNanYes5.1+3i
10/12/2005Level223.54609e19-inf
0.001No2.2-1.5i
11/12/2005Level334.90122e5
10
100
No3.1+2.1i現(xiàn)在把scan1.txt讀入
fid=fopen('scan1.txt');
C=textscan(fid,'%s%s%f%d%u%f%f%s%f');
fclose(fid);2024/1/2634輸出C為一個(gè)1*9的細(xì)胞矩陣
C{1}={'09/12/2005';'10/12/2005';'11/12/2005'}classcell
C{2}={'Level1';'Level2';'Level3'}
classcell
C{3}=[12.34;23.54;34.9]
classsingle
C{4}=[45;60;12]
classint8
C{5}=[4294967295;4294967295;200000]
classuint32
C{6}=[Inf;-Inf;10]
classdouble
C{7}=[NaN;0.001;100]
classdouble
C{8}={'Yes';'No';'No'}
classcell
C{9}=[5.1+3.0i;2.2-0.5i;3.1+0.1i]
classdouble注意:C{5}中的4294967295指的是32位系統(tǒng)無(wú)符號(hào)整型的最大值2^32-12024/1/26354.4Matlab可以調(diào)入外部數(shù)據(jù)
可以利用save命令保存工作空間中的數(shù)據(jù),用mat為擴(kuò)展名,為二進(jìn)制文件。
可以用load將文件中的數(shù)據(jù)再導(dǎo)入到工作空間。
另外,也可用記事本或?qū)懽职寰庉嫈?shù)據(jù),以txt為擴(kuò)展名;或者在Excel中編輯數(shù)據(jù),以xls為擴(kuò)展名。
如何把這樣的數(shù)據(jù)導(dǎo)入呢?
1.調(diào)入mat文件
〔1〕load:把默認(rèn)的mat文件中所有數(shù)據(jù)調(diào)入;
〔2〕loadfilename;
〔3〕loadfilenameXYZ…;%只能用空格
〔4〕S=load(…)%輸入?yún)?shù)可以是上面的各種方式
但注意:在指定文件名和變量名時(shí),用字符串形式;2024/1/2636如果是mat文件,那么返回值S是一個(gè)結(jié)構(gòu)數(shù)組,每一個(gè)變量構(gòu)成S的一個(gè)域;如果是文本文件,那么S是一雙精度數(shù)組。A=ones(3);B=eye(3,4);C=rand(3);savelxclear;clc>>S=load(‘lx’,’A’,’C’)那么顯示S=C:[3X3double]A:[3X3double]>>A=S.A那么顯示矩陣A2024/1/26372.調(diào)入文本文檔〔1〕loadfilename.txt%注意文件中的數(shù)據(jù)必須排成向量或矩陣形式,調(diào)入后將文件名作為矩陣的變量名;〔2)S=load(‘filename.txt’)%注意文件中的數(shù)據(jù)必須排成向量或矩陣形式,調(diào)入后矩陣的變量名為S;例題2:在當(dāng)前目錄下創(chuàng)立文本文件AT.txt123423453456>>clear;clc2024/1/2638>>loadAT.txt%假設(shè)在c盤(pán),那么c:\AT.txt>>AT那么顯示:AT=123423453456假設(shè)>>S=load(‘AT.txt’)%c:\AT.txt那么S=123423453456注意:用load調(diào)入文本文件時(shí),必須帶擴(kuò)展名2024/1/26393.調(diào)入Excel文件在Excel中輸入矩陣,用命令xlsread可把數(shù)據(jù)導(dǎo)入到工作空間〔1〕xlsreadfilename或xlsreadfilename.xls%將數(shù)據(jù)放在缺省變量ans中;〔2〕A=xlsread(‘filename’)或A=xlsread(‘filename.xls’)創(chuàng)立文件AX.xls,保存在當(dāng)前目錄下>>clear;clc>>A=xlsread(‘AX.xls’)那么顯示A=0NaN0000注意:從左上角的單元格開(kāi)始01234502NaN4560345NaN72024/1/26400000001234502456034572024/1/26414.用M文件的方式導(dǎo)入矩陣翻開(kāi)M文件編輯器,在其中編輯數(shù)據(jù):A=[1,2,3,4,5,6]B=ones(2)C=rand(3)D=zeros(4)E=eye(5)然后保存為文件lx.m%默認(rèn)保存在當(dāng)前目錄下>>lx那么在工作空間中創(chuàng)立了5個(gè)矩陣2024/1/26425.利用導(dǎo)入工具(向?qū)А矷mportWizard導(dǎo)入數(shù)據(jù)到工作空間〔1〕.翻開(kāi)ImportWizard進(jìn)入ImportWizard對(duì)話框在對(duì)話框中選擇要調(diào)入的變量,單擊finish即可〔2〕.調(diào)入mat文件類(lèi)似上面,lx.mat只調(diào)入變量B、C,咋辦?〔3〕.調(diào)入txt文件〔4〕.調(diào)入xls文件在一個(gè)xls文件中,可以輸入多個(gè)數(shù)據(jù)矩陣,每個(gè)保存在一個(gè)變量中,可以把需要的導(dǎo)入其中。2024/1/2643XLSREAD—讀Excel電子表格(XLS)文件為從文件中獲得有用的表單名,可調(diào)用具有兩個(gè)輸出的XLSFINFO,如:[status,sheetNames]=xlsfinfo(FILENAME)當(dāng)從Excel文件中讀取日期時(shí),日期數(shù)據(jù)必須轉(zhuǎn)換為MATLAB日期。如,假設(shè)在Excel文件中包含:4/12/994/13/994/14/99象這樣把數(shù)據(jù)轉(zhuǎn)換為MATLAB日期:excelDates=xlsread(FILENAME)matlabDates=datenum('30-Dec-1899')+excelDates2024/1/26444.5數(shù)據(jù)文件定位1.fseek命令fseek命令用來(lái)移動(dòng)文件位置指針。語(yǔ)法: status=fseek(fid,offset,origin)說(shuō)明:fid為文件指針;offset指定移動(dòng)的字節(jié)數(shù),如果offset>0,那么向后移動(dòng),否那么向前移動(dòng),等于0那么不移動(dòng);status為返回值,如果移動(dòng)成功那么返回0,否那么返回-1;origin指定移動(dòng)位置指針的參考起點(diǎn):'bof'或-1:文件的開(kāi)頭'cof'或0:文件的當(dāng)前位置'eof'或1:文件的末尾。2024/1/2645文件定位2.ftell命令 ftell命令是用來(lái)獲取文件位置指針的當(dāng)前位置。語(yǔ)法: pos=ftell(fid)%獲取當(dāng)前指針位置說(shuō)明:pos指字節(jié)數(shù),當(dāng)前位置指針指在此字節(jié)數(shù)之后。3.frewind命令frewind命令用來(lái)將文件位置指針移到文件的開(kāi)頭。語(yǔ)法: frewind(fid)4.feof命令feof命令用來(lái)測(cè)試位置指針是否在文件結(jié)束位置,如果是.那么返回1,否那么返回0。語(yǔ)法: feof(fid)2024/1/2646創(chuàng)立兩個(gè)mat文件,在Ex0808_1.mat文件中寫(xiě)入1~10的數(shù)據(jù),并進(jìn)行求和,在Ex0808_2.mat文件中寫(xiě)入1、2、3三個(gè)數(shù)據(jù),將第二個(gè)數(shù)據(jù)與前面所求的和進(jìn)行相乘運(yùn)算。程序保存在Ex0808.m文件中,程序代碼如下:%Ex0808文件讀取和定位x=1:10;s=0;fid1=fopen(‘Ex0808_1.mat’,‘w+’) %翻開(kāi)文件重新刷新寫(xiě)入數(shù)據(jù)fwrite(fid1,x); %寫(xiě)入數(shù)據(jù)frewind(fid1); %指針移到文件開(kāi)頭whilefeof(fid1)==0 %判斷是否到文件末尾 a1=fread(fid1,1); %讀取1個(gè)數(shù)據(jù) ifisempty(a1)==0 %判斷是否為空值 s=a1+s %求和 endendfclose(fid1);2024/1/2647y=[123];fid2=fopen('Ex0808_2.mat','w+') %翻開(kāi)文件重新刷新寫(xiě)入數(shù)據(jù)fwrite(fid2,y) %寫(xiě)入數(shù)據(jù)fseek(fid2,-2,'eof') %指針從文件末尾向前移動(dòng)到第二個(gè)數(shù)據(jù)a2=fread(fid2,1) %讀取數(shù)據(jù)s=s*a2fclose(fid2);2024/1/26484.6數(shù)據(jù)文件高級(jí)操作%讀取起始文件[FilenamepathName]=uigetfile({'*.txt','TxtFiles|*.txt'},'chooseaFile');%翻開(kāi)文件%有數(shù)據(jù)1.txt,s3.txt,s4.txt,可以用到以下操作:fid1=fopen(‘s3.txt’,‘rt’);%以文本文件翻開(kāi)讀取[S1,count]=fscanf(fid1,'%f',[724])S1=S1'fclose(fid1);%注意一定先翻開(kāi)再讀取fid2=fopen('s4.txt','rt');%以文本文件翻開(kāi)讀取[S2,count]=fscanf(fid2,'%f',[517])fclose(fid2);2024/1/2649fid=fopen(‘1.txt’,‘wt’);%以文本文件翻開(kāi)寫(xiě)入fprintf(fid,'點(diǎn)號(hào)X(m)Y(m)中誤差X(cm)中誤差Y(cm)點(diǎn)位中誤差\n');fori=1:14fprintf(fid,'%d%11.4f%11.4f%5.4f%
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年攤位租賃合同解除及違約責(zé)任3篇
- 三救三獻(xiàn)知識(shí)培訓(xùn)課件
- 2025年分期租房賣(mài)房購(gòu)房協(xié)議
- 2025年合作平裝書(shū)協(xié)議
- 2025年修理保養(yǎng)合同
- 2025年出資增資協(xié)議
- 二零二五版酒店車(chē)位租賃及收益分配合同3篇
- 2025年違約合同糾紛民事起訴狀編寫(xiě)手冊(cè)3篇
- 2025年校園綠化工程苗木供應(yīng)與種植承包合同3篇
- 2025年動(dòng)植物保險(xiǎn)合同
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長(zhǎng)競(jìng)聘演講稿(3篇)
- 2025至2031年中國(guó)臺(tái)式燃?xì)庠钚袠I(yè)投資前景及策略咨詢研究報(bào)告
- 原發(fā)性腎病綜合征護(hù)理
- 第三章第一節(jié)《多變的天氣》說(shuō)課稿2023-2024學(xué)年人教版地理七年級(jí)上冊(cè)
- 2025年中國(guó)電科集團(tuán)春季招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度建筑施工現(xiàn)場(chǎng)安全管理合同2篇
- 建筑垃圾回收利用標(biāo)準(zhǔn)方案
- 2024年考研英語(yǔ)一閱讀理解80篇解析
- 樣板間合作協(xié)議
- 福建省廈門(mén)市2023-2024學(xué)年高二上學(xué)期期末考試語(yǔ)文試題(解析版)
評(píng)論
0/150
提交評(píng)論