matlab中將數(shù)據(jù)保存為txt或dat格式四種方案_第1頁
matlab中將數(shù)據(jù)保存為txt或dat格式四種方案_第2頁
matlab中將數(shù)據(jù)保存為txt或dat格式四種方案_第3頁
matlab中將數(shù)據(jù)保存為txt或dat格式四種方案_第4頁
matlab中將數(shù)據(jù)保存為txt或dat格式四種方案_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、matlab中將數(shù)據(jù)保存為txt或dat格式四種方案胡總結(jié)網(wǎng)上各種資源,列出以下的四種方法(以txt為例)。第一種方法:save(最簡單基本的)具體的命令是:用save *.txt -ascii xx為變量*.txt為文件名,該文件存儲于當前工作目錄下,再打開就可以 打開后,數(shù)據(jù)有可能是以指數(shù)形式保存的.例子:a =17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ;save afile.txt -ascii a;%保存文本文檔的文件名afile.txt打開之后,是這樣的:1.7000000e+001 2.

2、4000000e+001 1.0000000e+000 8.0000000e+000 1.5000000e+0012.3000000e+001 5.0000000e+000 7.0000000e+000 1.4000000e+001 1.6000000e+0014.0000000e+000 6.0000000e+000 1.3000000e+001 2.0000000e+001 2.2000000e+0011.0000000e+001 1.2000000e+001 1.9000000e+001 2.1000000e+001 3.0000000e+0001.1000000e+001 1.8000

3、000e+001 2.5000000e+001 2.0000000e+000 9.0000000e+000第二種方法:dlmwritedlmwrite('a.txt',a,'precision','%10.0f')或者是dlmwrite('a.txt',a,'delimiter', 't')對于只有一行或者一列的數(shù)據(jù),很適用,但是多行的,就亂了網(wǎng)上有很多這一類似的問題,但是都不是很理想第三種方法:fopen+fprintf(最常用)下面主要介紹這種方法,由以下的前兩種情況最終導出第三種情況可以完美的

4、解決以上問題。以上面的例子為例:第一種情況:>> a=17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ;>> fid = fopen('b.txt','wt');fprintf(fid,'%gn',a);       n 換行fclose(fid);然后用寫字板打開b.txt,內(nèi)容如下:為列向量172341011245612181713192581420212151

5、62239第二種情況:對上面的命令做一下改動:n 換行改為t,table鍵>> fid = fopen('b.txt','w');fprintf(fid,'%gt',a);fclose(fid);然后用寫字板打開b.txt,內(nèi)容如下:為行向量:17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2&

6、#160;15 16 22 3 9 第三種情況:(最終程序)綜合上面的兩個情況,我們編寫以下命令:fid=fopen('b.txt','wt');%寫入的文件,各函數(shù)后面有說明m,n=size(a); for i=1:1:m    for j=1:1:n       if j=n         fprintf(fid,'%gn

7、',a(i,j);      else        fprintf(fid,'%gt',a(i,j);       end    endendfclose(fid);然后用寫字板打開b.txt,內(nèi)容如下:矩陣17 24 1 8 1523 5 7 14 164 6 

8、13 20 2210 12 19 21 311 18 25 2 9說明:以上操作都是在當前的工作目錄下完成!下面給出最一般的模型,大家可以試著自己操作,如果需要dat格式,直接把txt換為dat就可以:fid=fopen('C:Documents and SettingsTname.txt','wt');%寫入文件路徑matrix=input_mattrix         

9、               %input_matrix為待輸出矩陣m,n=size(matrix); for i=1:1:m   for j=1:1:n      if j=n        fprintf(fid,'%gn',matrix(i,j);

10、     else       fprintf(fid,'%gt',matrix(i,j);      end   endendfclose(fid);××××××××××××××××××

11、15;××××××××××××××××××××××××××××××××××××××下面附了具體的matlab的fopen和fprintf函數(shù)具體解釋,當然help一下是可以知道的,只是為了方便大家matlab中fopen

12、函數(shù)在指定文件打開的實例如下:*1)“fopen”打開文件,賦予文件代號。    語法1:FID= FOPEN(filename,permission)用指定的方式打開文件FID=+N(N是正整數(shù)):表示文件打開成功,文件代號是N.FID=-1            : 表示文件打開不成功。FID在此次文件關(guān)閉前總是有效的。如以讀方式打開,matlab首先搜索工作目錄,其次搜索matlab的其他目錄,“permission”是打開方式參數(shù)。打開方式參數(shù)由以

13、下字符串確定:r             讀出w             寫入(文件若不存在,自動創(chuàng)建)a             后續(xù)寫入(文件若不存在,自動創(chuàng)建)r+      

14、;      讀出和寫入(文件應(yīng)已存在)w+            重新刷新寫入,(文件若不存在,自動創(chuàng)建)a+            后續(xù)寫入(文件若不存在,自動創(chuàng)建)w             重新寫入,但

15、不自動刷新a             后續(xù)寫入,但不自動刷新文件的存儲格式:文件打開的默認方式是:二進制。以文本方式打開,可以在方式參數(shù)“permission”中加入“t”文件將,如“rt”,“wt+”matlab中fprintf函數(shù)的具體使用方法實例如下:fprintf函數(shù)可以將數(shù)據(jù)按指定格式寫入到文本文件中。其調(diào)用格式為:數(shù)據(jù)的格式化輸出:fprintf(fid, format, variables)  按指定的格式將變量的值輸出到屏幕或指定文件  f

16、id為文件句柄,若缺省,則輸出到屏幕    1 for standard output (the screen) or 2 for standard error. If FID is omitted, output goes to the screen.  format用來指定數(shù)據(jù)輸出時采用的格式    %d 整數(shù)    %e 實數(shù):科學計算法形式    %f 實數(shù):小數(shù)形式    %g 由系統(tǒng)自動選取上述兩種格式之一 

17、60;  %s 輸出字符串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(&#

18、39;d:char1.txt','rt');>> fid1=fopen('d:char1.txt','rt');>> b=fscanf(fid1,'%s')b =stringmatlab讀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ù)型讀出f

19、close(fid);%關(guān)閉文件另外有的txt文件還可以用load來打開其語句為f=load('fx.txt) 字符串操作函數(shù)1.        函數(shù)eval可以用來執(zhí)行用字符串表示的表達式2.        函數(shù)deblank可以去掉字符串末尾的所有空格3.        函數(shù)findstr可以用來在長字符串中查找一個短的字符串,并返回相應(yīng)的位置4.  &#

20、160;     函數(shù)isstr可以用來判斷變量是否為字符串5.        函數(shù)isletter可以用來判斷字符串中各個元素是否為字母6.        函數(shù)isspace可以用來判斷字符串元素是否為空格符7.        函數(shù)lower和upper可以把字符串中的字母轉(zhuǎn)為小寫格式和大寫格式8.    

21、    函數(shù)strcat可以把多個字符串在水平方向上依次連接起來9.        函數(shù)strvcat可以把多個字符串按豎直方向連接起來10.     函數(shù)strcmp可以用來進行字符串的比較,返回1或011.     函數(shù)strcmpi可以用來忽略英文字母的大小寫方式比較字符串12.     函數(shù)strncmp可以用來比較字符串前N個字符是否相同13.  

22、   函數(shù)strjust可以用來調(diào)整字符串矩陣的對齊方式14.     函數(shù)strmatch可以用來尋找和目標字符串匹配的行15.     函數(shù)strrep可以實現(xiàn)字符串的查找和替代功能16.     函數(shù)strtok可以找出字符串第一個空格符前的字符串17.     函數(shù)texlabel可以把字符串轉(zhuǎn)換成tex軟件的格式18.     不同進制間的轉(zhuǎn)換,bin2hex,bin

23、2dec(字符串);dec2hex(數(shù))=字符串;即十進制數(shù)不為字符串,      其它進制為字符串19.     函數(shù)bitget可以用來獲取二進制的數(shù)位    C=bitget(A,bit),A為一個無符號整形數(shù)據(jù)20.     函數(shù)bitset可以用來設(shè)定某個二進制數(shù)位的值      C=bitset(A,bit) 指定數(shù)位的數(shù)值取反    

24、                                              C=bitset(A,bit,V)指定數(shù)位的數(shù)值被V替換第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論