(translator=roro, ChineseSource=roro-20020502-9\textread.html, EnglishSource=c:\matlabr12\help\techdoc\ref\textread.html)
MATLAB Function Reference    
textread

從文件檔案中讀取格式化的資料

    Graphical Interface

除了使用 textread 指令外,也可使用輸入精靈(Import Wizard)。欲執行輸入精靈(Import Wizard),請選擇檔案(File)中的輸入資料(Import data)。

Syntax

Description

[A,B,C,...] = textread('filename','format') 依照 format 格式讀取檔案資料 str 並存入 A, B, C 等變數,直到讀完整個檔案資料。textread 指令對於讀取已知格式的檔案是相當有用的。不管是 fixed 還是 free 的檔案格式都可以處理。

textread 指令對應、轉換輸入的字元組。每一筆輸入欄位即為沒有空白字元而延伸到下個空白字元或是定義符號的字串,或是最大欄位長度的字串。連續出現的定義符號是有特殊意義的,但是連續的空白字元則會被視為只有一個空白字元。

依字串 format 來決定回傳值的個數及資料型態。回傳值的個數和字串 format 中決定項目的個數是相同的。同時,字串 format 支援 C 語言中 fscanf 程序的協定。字串 format 的使用方法列在下表。若在字串 format 中有空白字元,則一律忽略。


format
Action
Output
Literals
(ordinary characters)
忽略相配對應的字元。舉例來說,在檔案裡有個數字寫在 Dept 之後,若要忽略 Dept 並讀取數字,則在字串 format 中使用 'Dept'

%d
讀取一個正整數。
Double 陣列
%u
讀取一個整數。
Double 陣列
%f
讀取一個浮點數。
Double 陣列
%s
讀取一個被空白字元或是定義符號分隔的字串。
存取字串的陣列
%q
讀取一個在雙引號中的字串。
存取字串的陣列。不包括雙引號。
%c
讀取包括空白字元在內的字元。
字元陣列
%[...]
讀取含有中括孤內字元的最長字串。
存取字串的陣列
%[^...]
讀取不包含中括孤內字元且不為空字串的最長字串。
存取字串的陣列
%*...
instead of %
忽略 * 後資料型態所對應的字元。

%w...
instead of %
讀取欄位長度為 w 的資料。另外,%f 的格式支援 %w.pfw 為其欄位的長度,而 p 則是精確度。

[A,B,C,...] = textread('filename','format',N) 依 format 格式重覆 N 次讀取檔案,N 為一大於 0 整數,若 N 小於 0 ,則 textread 將讀完整個檔案才結束。

[...] = textread(...,'param','value',...) 依照 param/value 來決定 textread 的功用,param/value 的用法列在下面的表格中。

param
value
Action
whitespace
Any from the list below:
將字元向量視為空白字元。預設為 ' \b\t'

' '
\b
\n
\r
\t
空白字元
倒退符號
換行符號
Carriage return
Horizontal tab
delimiter
Delimiter 字元
指定定義符號,預設值為空字串。
expchars
Exponent 字元
預設值為 eEdD.
bufsize
正整數
以位元組定義字串的最大長度,預設值是 4095
headerlines
正整數
忽略檔案起始的特定行數。
commentstyle
matlab
忽略在 % 之後的字元。
commentstyle
shell
忽略在 # 之後的字元。
commentstyle
c
忽略在 /**/ 之間的字元。
commentstyle
c++
忽略在 // 之後的字元。

Examples

範例 1 - 使用 % 讀取檔案的欄位

檔名為 mydata.dat 的檔案其第一行為

使用 % 格式讀取檔案的第一行。

傳回值為

範例 2 - 讀取檔案內容,但不包括浮點數

檔名為 mydata.dat 的檔案其第一行為

讀取檔案的第一行,並忽略浮點數。

傳回值為

在這個範例中,format 字串 %*f 指令造成 textread 忽略了檔案中的浮點數 12.34

範例 3 - 使用文字去省略讀取相配對應的字體

檔名為 mydata.dat 的檔案其第一行為

讀取檔案的第一行,並忽略第二欄的 Type

傳回值為

在這個範例中,format 字串 Type%d 指令造成了第二欄的字體 Type 被忽略,而第二欄剩下的值會以正整數的型態被讀取,也就是 1

範例 4 - 將 M 檔案讀進存取字串的陣列中

將檔案 fft.m 讀進存取字串的陣列 file 中。

See Also

dlmread, fscanf


 Text Properties textwrap