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ù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、matlab中將數(shù)據(jù)保存為txt或dat格式四種方案胡總結網(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 a -ascii a;%保存文本文檔的文件名a打開之后,是這樣的:1.7000000e+001 2.4000000e+001 1.0

2、000000e+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.8000000e+001 2.50000

3、00e+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(最常用)下面主要介紹這種方法,由以下的前兩種情況最終導出第三種情況可以完美的解決以上問題。以上面的例子為例:第一種情況: a=17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 2

4、1 3 ;11 18 25 2 9 ; fid = fopen(b.txt,wt);fprintf(fid,%gn,a);n 換行fclose(fid);然后用寫字板打開b.txt,內容如下:為列向量17234101124561218171319258142021215162239第二種情況:對上面的命令做一下改動:n 換行改為t,table鍵 fid = fopen(b.txt,w);fprintf(fid,%gt,a);fclose(fid);然后用寫字板打開b.txt,內容如下:為行向量:17234101124561218171319258142021215162239第三種情況:(最終

5、程序)綜合上面的兩個情況,我們編寫以下命令: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,a(i,j); else fprintf(fid,%gt,a(i,j); end endendfclose(fid);然后用寫字板打開b.txt,內容如下:矩陣17241815235714164613202210121921311182529說明:以上操作都是在當前的工作目錄下完成!下面給出最一般的模型,大家可以試著自己操作,如果需要dat格式,直接把txt換為da

6、t就可以:fid=fopen(C:Documents and SettingsTname.txt,wt);%寫入文件路徑matrix=input_mattrix%input_matrix為待輸出矩陣m,n=size(matrix);for i=1:1:mfor j=1:1:nif j=nfprintf(fid,%gn,matrix(i,j);elsefprintf(fid,%gt,matrix(i,j);endendendfclose(fid);下面附了具體的matlab的fopen和fprintf函數(shù)具體解釋,當然help一下是可以知道的,只是為了方便大家matlab中fopen函數(shù)在指定文

7、件打開的實例如下:*1)“fopen”打開文件,賦予文件代號。 語法1:FID= FOPEN()用指定的方式打開文件FID=+N(N是正整數(shù)):表示文件打開成功,文件代號是N.FID=-1 : 表示文件打開不成功。FID在此次文件關閉前總是有效的。如以讀方式打開,matlab首先搜索工作目錄,其次搜索matlab的其他目錄,“permission”是打開方式參數(shù)。打開方式參數(shù)由以下字符串確定:r 讀出w 寫入(文件若不存在,自動創(chuàng)建)a 后續(xù)寫入(文件若不存在,自動創(chuàng)建)r+ 讀出和寫入(文件應已存在)w+ 重新刷新寫入,(文件若不存在,自動創(chuàng)建)a+ 后續(xù)寫入(文件若不存在,自動創(chuàng)建)w 重

8、新寫入,但不自動刷新a 后續(xù)寫入,但不自動刷新文件的存儲格式:文件打開的默認方式是:二進制。以文本方式打開,可以在方式參數(shù)“permission”中加入“t”文件將,如“rt”,“wt+”matlab中fprintf函數(shù)的具體使用方法實例如下:fprintf函數(shù)可以將數(shù)據(jù)按指定格式寫入到文本文件中。其調用格式為:數(shù)據(jù)的格式化輸出:fprintf(fid, format, variables) 按指定的格式將變量的值輸出到屏幕或指定文件 fid為文件句柄,若缺省,則輸出到屏幕 1 for standard output (the screen) or 2 for standard error.

9、If FID is omitted, output goes to the screen. format用來指定數(shù)據(jù)輸出時采用的格式 %d 整數(shù) %e 實數(shù):科學計算法形式 %f 實數(shù):小數(shù)形式 %g 由系統(tǒng)自動選取上述兩種格式之一 %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)

10、; fclose(fid); fid1=fopen(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ù)型讀出fclose(fid);%關閉文件另外有的txt文件還可以用load來打開其語句為f=load(fx.txt) 字符串操作函數(shù)1. 函數(shù)eval可以用來執(zhí)行用

11、字符串表示的表達式2. 函數(shù)deblank可以去掉字符串末尾的所有空格3. 函數(shù)findstr可以用來在長字符串中查找一個短的字符串,并返回相應的位置4. 函數(shù)isstr可以用來判斷變量是否為字符串5. 函數(shù)isletter可以用來判斷字符串中各個元素是否為字母6. 函數(shù)isspace可以用來判斷字符串元素是否為空格符7. 函數(shù)lower和upper可以把字符串中的字母轉為小寫格式和大寫格式8. 函數(shù)strcat可以把多個字符串在水平方向上依次連接起來9. 函數(shù)strvcat可以把多個字符串按豎直方向連接起來10. 函數(shù)strcmp可以用來進行字符串的比較,返回1或011. 函數(shù)strcmpi

12、可以用來忽略英文字母的大小寫方式比較字符串12. 函數(shù)strncmp可以用來比較字符串前N個字符是否相同13. 函數(shù)strjust可以用來調整字符串矩陣的對齊方式14. 函數(shù)strmatch可以用來尋找和目標字符串匹配的行15. 函數(shù)strrep可以實現(xiàn)字符串的查找和替代功能16. 函數(shù)strtok可以找出字符串第一個空格符前的字符串17. 函數(shù)texlabel可以把字符串轉換成tex軟件的格式18. 不同進制間的轉換,bin2hex,bin2dec(字符串);dec2hex(數(shù))=字符串;即十進制數(shù)不為字符串, 其它進制為字符串19. 函數(shù)bitget可以用來獲取二進制的數(shù)位 C=bitge

13、t(A,bit),A為一個無符號整形數(shù)據(jù)20. 函數(shù)bitset可以用來設定某個二進制數(shù)位的值 C=bitset(A,bit) 指定數(shù)位的數(shù)值取反 C=bitset(A,bit,V)指定數(shù)位的數(shù)值被V替換第四種方法:(數(shù)據(jù)少了可以)例如: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 ;是一個55矩陣 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9fid=fopen(Tname.txt,wt);fprintf(fid,%8.4f%8.4f%8.4f %8.4f %8.4f n,a) %輸出矩陣fclose(fid) %關閉文件講一下fprintf命令中每一項的含義:fid 函數(shù)句柄,代表

溫馨提示

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

評論

0/150

提交評論