最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
ファイルからのテーブルの作成
は、ファイルから列データを読み取ることによって table を作成します。T
= readtable(filename
)
readtable
は、ファイル拡張子からファイル形式を判定します。
区切りテキスト ファイルの場合、.txt
、.dat
または .csv
スプレッドシート ファイルの場合、.xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
, .xltx
または .ods
readtable
は、ファイルの列ごとに 1 つの変数を T
に作成し、ファイルの最初の行から変数名を読み取ります。既定では、readtable
は、入力ファイルの各列で検出されたデータ値に適したデータ型をもつ変数を作成します。
は、1 つ以上の名前と値のペアの引数で指定された追加のオプションを使用して、ファイルから table を作成します。たとえば、T
= readtable(___,Name,Value
)readtable
でファイルの最初の行を変数名として読み取るかデータとして読み取るかを指定することができます。
データ特有のインポート オプションを設定するには、opts
オブジェクトを使用するか、名前と値のペアを指定できます。opts
に加えて名前と値のペアを指定する場合、readtable
がサポートするのは次の名前と値のペアのみです。
テキストおよびスプレッドシートのパラメーター — ReadVariableNames
、ReadRowNames
テキストのみのパラメーター — DateLocale
、Encoding
スプレッドシートのみのパラメーター — Sheet
、UseExcel
myCsvTable.dat
ファイルをテキスト エディターに読み込み、その内容をプレビューします。スクリーン ショットを以下に示します。このファイルにはコンマ区切り列データが含まれています。
filename = 'myCsvTable.dat';
コンマ区切りのテキスト ファイルからテーブルを作成します。作成された table T
にはファイルの列ごとに 1 つの変数が含まれ、readtable
はファイルの最初の行のエントリを変数名として扱います。
T = readtable(filename)
T=5×6 table
LastName Gender Age Height Weight Smoker
____________ ______ ___ ______ ______ ______
{'Smith' } {'M'} 38 71 176 1
{'Johnson' } {'M'} 43 69 163 0
{'Williams'} {'F'} 38 64 131 0
{'Jones' } {'F'} 40 67 133 0
{'Brown' } {'F'} 49 64 119 0
R2020a 以降、関数 readtable
は、関数 detectImportOptions
をファイルで自動的に呼び出すかのように入力ファイルを読み取ります。これはデータ型を検出し、余分なヘッダー行を破棄し、欠損値を埋めることができます。
たとえば、ファイル headersAndMissing.txt
をテキスト エディターでプレビューします。このファイルには列名が含まれる行があり、別の行にはヘッダーが含まれます。前の行にはデータ値がありますが、最後の 2 行にはギャップがあります。
このファイルから table を作成します。関数 readtable
は、ヘッダーを破棄します。また、適切な欠損値 (数値変数には NaN
の値、テキストには空の文字ベクトル) をギャップに埋めます。
T = readtable('headersAndMissing.txt')
T=5×6 table
LastName Gender Age Height Weight Smoker
___________ __________ ___ ______ ______ ______
{'Wu' } {'M' } 38 71 176 1
{'Johnson'} {'M' } 43 69 163 0
{'Sanchez'} {'F' } 38 64 131 0
{'Brown' } {'F' } NaN 67 133 0
{'Picard' } {0x0 char} NaN 64 119 0
以前のリリースでの既定の動作に戻すには、名前と値のペアの引数 'Format','auto'
を指定します。readtable
は、ヘッダーをデータとして読み取り、結果として、すべての table 変数をテキストに変換します。
T = readtable('headersAndMissing.txt','Format','auto')
T=6×6 table
LastName Gender Age Height Weight Smoker
___________ __________ __________ _______ _______ ___________
{'string' } {'string'} {'int' } {'int'} {'int'} {'boolean'}
{'Wu' } {'M' } {'38' } {'71' } {'176'} {'1' }
{'Johnson'} {'M' } {'43' } {'69' } {'163'} {'0' }
{'Sanchez'} {'F' } {'38' } {'64' } {'131'} {'0' }
{'Brown' } {'F' } {0x0 char} {'67' } {'133'} {'0' }
{'Picard' } {0x0 char} {0x0 char} {'64' } {'119'} {'0' }
詳細については、このページの「互換性についての考慮事項」節を参照してください。
ファイル mySpaceDelimTable.txt
をテキスト エディターでプレビューします。スクリーン ショットを以下に示します。このファイルにはスペース区切り列データが含まれています。
スペースで区切られたテキスト ファイルから table を作成します。ファイルの最初の行に検出可能な列名が含まれていないため、関数 readtable
は、既定の変数名 Var1
から Var5
を割り当てます。
T = readtable('mySpaceDelimTable.txt')
T=3×5 table
Var1 Var2 Var3 Var4 Var5
_____ ____ ____ ______ _________
{'M'} 45 45 {'NY'} {'true' }
{'F'} 41 32 {'CA'} {'false'}
{'M'} 40 34 {'MA'} {'false'}
myCsvTable.dat
ファイルをテキスト エディターに読み込み、その内容をプレビューします。スクリーン ショットを以下に示します。このファイルにはコンマ区切り列データが含まれています。
filename = 'myCsvTable.dat';
コンマ区切りのテキスト ファイルからテーブルを作成します。最初の 2 つの列を文字ベクトル、3 番目の列を uint32
、その次の 2 つの列を倍精度浮動小数点数としてインポートします。最後の列のエントリを文字ベクトルとしてインポートします。
T = readtable(filename,'Format','%s%s%u%f%f%s')
T=5×6 table
LastName Gender Age Height Weight Smoker
____________ ______ ___ ______ ______ ______
{'Smith' } {'M'} 38 71 176 {'1'}
{'Johnson' } {'M'} 43 69 163 {'0'}
{'Williams'} {'F'} 38 64 131 {'0'}
{'Jones' } {'F'} 40 67 133 {'0'}
{'Brown' } {'F'} 49 64 119 {'0'}
変換指定子は、文字ベクトルの cell 配列の場合は %s
、double
の場合は %f
、uint32
の場合は %u
です。
ファイルからドイツ語の日付を読み取り、英語の日付としてテーブルに追加します。
ファイル german_dates.txt
をテキスト エディターでプレビューします。スクリーン ショットを以下に示します。値の最初の列にはドイツ語の日付が含まれ、2 番目と 3 番目の列は数値となっています。
readtable
を使用してサンプル ファイルを読み取ります。変換指定子は日付では %D
、浮動小数点値では %f
です。ファイルのエンコードは、名前と値のペアの引数 FileEncoding
で指定します。日付の書式とロケールは、名前と値のペアの引数 DateLocale
で指定します。
T = readtable('german_dates.txt',... 'Format','%{dd MMMM yyyy}D %f %f',... 'FileEncoding','ISO-8859-15',... 'DateLocale','de_DE')
T=3×3 table
Var1 Var2 Var3
________________ ____ _____
01 January 2014 20.2 100.5
01 February 2014 21.6 102.7
01 March 2014 20.7 99.8
スプレッドシートから、最初の行に変数名、最初の列に行名が含まれるテーブルを作成します。
T = readtable('patients.xls','ReadRowNames',true);
テーブルの最初の 5 行と最初の 4 つの変数を表示します。
T(1:5,1:4)
ans=5×4 table
Gender Age Location Height
__________ ___ _____________________________ ______
Smith {'Male' } 38 {'County General Hospital' } 71
Johnson {'Male' } 43 {'VA Hospital' } 69
Williams {'Female'} 38 {'St. Mary's Medical Center'} 64
Jones {'Female'} 40 {'VA Hospital' } 67
Brown {'Female'} 49 {'County General Hospital' } 64
テーブルの DimensionNames
プロパティを表示します。
T.Properties.DimensionNames
ans = 1x2 cell
{'LastName'} {'Variables'}
'LastName'
は、スプレッドシートの最初の行の最初の列にある名前です。
スプレッドシート patients.xls
の指定した領域のデータを使用して table を作成します。角 C2
と E6
の間にある 5 行 3 列の四角形領域のデータを使用します。この領域の最初の行は変数名として使用しないでください。
T = readtable('patients.xls',... 'Range','C2:E6',... 'ReadVariableNames',false)
T = Var1 Var2 Var3 ____ ___________________________ ____ 38 'County General Hospital' 71 43 'VA Hospital' 69 38 'St. Mary's Medical Center' 64 40 'VA Hospital' 67 49 'County General Hospital' 64
T
には、既定の変数名が含まれます。
インポート オプションを作成し、複数の変数に対しデータ型を適用してから、データを読み取ります。
テキスト ファイルからインポート オプション オブジェクトを作成します。
opts = detectImportOptions('airlinesmall.csv')
opts = DelimitedTextImportOptions with properties: Format Properties: Delimiter: {','} Whitespace: '\b\t ' LineEnding: {'\n' '\r' '\r\n'} CommentStyle: {} ConsecutiveDelimitersRule: 'split' LeadingDelimitersRule: 'keep' EmptyLineRule: 'skip' Encoding: 'ISO-8859-1' Replacement Properties: MissingRule: 'fill' ImportErrorRule: 'fill' ExtraColumnsRule: 'addvars' Variable Import Properties: Set types by name using setvartype VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more} VariableTypes: {'double', 'double', 'double' ... and 26 more} SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more} VariableOptions: Show all 29 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts PreserveVariableNames: false Location Properties: DataLines: [2 Inf] VariableNamesLine: 1 RowNamesColumn: 0 VariableUnitsLine: 0 VariableDescriptionsLine: 0 To display a preview of the table, use preview
変数 TaxiIn
と変数 TaxiOut
の Type
プロパティを確認します。
getvaropts(opts,{'TaxiIn','TaxiOut'})
ans = 1x2 TextVariableImportOptions array with properties: Name Type FillValue TreatAsMissing QuoteRule Prefixes Suffixes EmptyFieldRule WhitespaceRule
変数 TaxiIn
と TaxiOut
の型を double
に変更します。
opts = setvartype(opts,{'TaxiIn','TaxiOut'},'double');
インポートして確認する変数のサブセットを指定します。
opts.SelectedVariableNames = {'TaxiIn','TaxiOut'};
関数 readtable
をオプション オブジェクトと共に使用して、選択した変数をインポートします。テーブルの概要を表示します。
T = readtable('airlinesmall.csv',opts);
summary(T)
Variables: TaxiIn: 123523x1 double Values: Min 0 Median 5 Max 1451 NumMissing 37383 TaxiOut: 123523x1 double Values: Min 0 Median 13 Max 755 NumMissing 37364
スプレッドシート ファイルのインポート オプションを検出し、インポートする変数を指定してから、データを読み取ります。
ファイルからインポート オプション オブジェクトを作成します。
opts = detectImportOptions('patients.xls')
opts = SpreadsheetImportOptions with properties: Sheet Properties: Sheet: '' Replacement Properties: MissingRule: 'fill' ImportErrorRule: 'fill' Variable Import Properties: Set types by name using setvartype VariableNames: {'LastName', 'Gender', 'Age' ... and 7 more} VariableTypes: {'char', 'char', 'double' ... and 7 more} SelectedVariableNames: {'LastName', 'Gender', 'Age' ... and 7 more} VariableOptions: Show all 10 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts PreserveVariableNames: false Range Properties: DataRange: 'A2' (Start Cell) VariableNamesRange: 'A1' RowNamesRange: '' VariableUnitsRange: '' VariableDescriptionsRange: '' To display a preview of the table, use preview
オプション オブジェクトを変更してインポートする変数を指定します。
opts.SelectedVariableNames = {'Systolic','Diastolic'};
readtable
をオプション オブジェクトと共に使用して、指定した変数をインポートします。
T = readtable('patients.xls',opts);
summary(T)
Variables: Systolic: 100x1 double Values: Min 109 Median 122 Max 138 Diastolic: 100x1 double Values: Min 68 Median 81.5 Max 99
スペース、非 ASCII 文字などの任意の文字を含む変数名を保持しながら、表形式データを読み取ることができます。まず、任意の変数名を含む table を作成し、その table をテキスト ファイルに書き込みます。次に、元の変数名を保持しながら表形式データを読み戻します。
任意の変数名を含む table を作成し、その表形式データをファイル 'sampletable.txt'
に書き込みます。
LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'}; Age = [38;43;38;40;49]; Smoker = logical([1;0;1;0;1]); varNames = {'Last Name','Age','Smoker (1 or 0)'}; T = table(LastName,Age,Smoker,'VariableNames',varNames)
T=5×3 table
Last Name Age Smoker (1 or 0)
___________ ___ _______________
{'Sanchez'} 38 true
{'Johnson'} 43 false
{'Li' } 38 true
{'Diaz' } 40 false
{'Brown' } 49 true
writetable(T,'sampletable.txt')
readtable
を使用して、表形式データを読み戻します。既定で、MATLAB® はスペースおよび非 ASCII 文字が含まれる変数名を、有効な MATLAB® 識別子に変換します。たとえば、MATLAB® は変数名 'Last Name'
を 'LastName'
、'Smoker (1 or 0)'
を 'Smoker_1or0_'
に変換します。変数名を保持しながら表形式データを読み取るには、'PreserveVariableNames'
パラメーターを true
に設定します。
T_preserve = readtable('sampletable.txt','PreserveVariableNames',true)
T_preserve=5×3 table
Last Name Age Smoker (1 or 0)
___________ ___ _______________
{'Sanchez'} 38 1
{'Johnson'} 43 0
{'Li' } 38 1
{'Diaz' } 40 0
{'Brown' } 49 1
16 進数と 2 進数をファイルから読み取り、それらを数値変数として table に格納できます。関数 readtable
は、16 進数と 2 進数にそれぞれ 0x
と 0b
の接頭辞が含まれている場合、16 進数と 2 進数を自動的に読み取ります。数値は整数データ型を使用して格納されます。また、このような数値に接頭辞がない場合、インポート オプションを使用して読み取ることもできます。
hexAndBinary.txt
のファイルをテキスト エディターでプレビューします。このファイルには 16 進数と 2 進数に接頭辞が含まれている列がありますが、含まれていない列が 1 つあります。
readtable
を使用してファイルを読み取ります。この関数は、0x
と 0b
の接頭辞を含む数値を検出し、それらを整数として格納します。3 番目の列には接頭辞がないため、その値はテキストとして扱われます。
T = readtable('hexAndBinary.txt')
T=3×4 table
Var1 Var2 Var3 Var4
_____ ____ ________ ___________
255 255 {'C7F9'} {'Device1'}
256 4 {'05BF'} {'Device2'}
43981 129 {'F00F'} {'Device3'}
T.Var1
には 8 ビットより大きいストレージを必要とする値があるため、関数 readtable
は、数値を異なる整数クラス (uint16
と uint8
) に格納します。
class(T.Var1)
ans = 'uint16'
class(T.Var2)
ans = 'uint8'
16 進数と 2 進数からインポートされた数値を格納するためのデータ型を指定するには、名前と値のペアの引数 'HexType'
および 'BinaryType'
を使用します。値を符号付き 32 ビット整数として格納します。
T = readtable('hexAndBinary.txt','HexType','int32','BinaryType','int32'); class(T.Var1)
ans = 'int32'
class(T.Var2)
ans = 'int32'
インポート オプションを使用して接頭辞のない 16 進数と 2 進数を検出し、それらのためのストレージを指定します。hexAndBinary.txt
のインポート オプション オブジェクトを作成します。
opts = detectImportOptions('hexAndBinary.txt')
opts = DelimitedTextImportOptions with properties: Format Properties: Delimiter: {','} Whitespace: '\b\t ' LineEnding: {'\n' '\r' '\r\n'} CommentStyle: {} ConsecutiveDelimitersRule: 'split' LeadingDelimitersRule: 'keep' EmptyLineRule: 'skip' Encoding: 'UTF-8' Replacement Properties: MissingRule: 'fill' ImportErrorRule: 'fill' ExtraColumnsRule: 'addvars' Variable Import Properties: Set types by name using setvartype VariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableTypes: {'auto', 'auto', 'char' ... and 1 more} SelectedVariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableOptions: Show all 4 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts PreserveVariableNames: false Location Properties: DataLines: [1 Inf] VariableNamesLine: 0 RowNamesColumn: 0 VariableUnitsLine: 0 VariableDescriptionsLine: 0 To display a preview of the table, use preview
接頭辞がない場合でも 3 番目の列を 16 進数値としてインポートする必要があることを指定するには、関数 setvaropts
を使用して、table の 3 番目の変数の型を変更します。変数の型を int32
に設定します。
opts = setvaropts(opts,3,'NumberSystem','hex','Type','int32')
opts = DelimitedTextImportOptions with properties: Format Properties: Delimiter: {','} Whitespace: '\b\t ' LineEnding: {'\n' '\r' '\r\n'} CommentStyle: {} ConsecutiveDelimitersRule: 'split' LeadingDelimitersRule: 'keep' EmptyLineRule: 'skip' Encoding: 'UTF-8' Replacement Properties: MissingRule: 'fill' ImportErrorRule: 'fill' ExtraColumnsRule: 'addvars' Variable Import Properties: Set types by name using setvartype VariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableTypes: {'auto', 'auto', 'int32' ... and 1 more} SelectedVariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableOptions: Show all 4 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts PreserveVariableNames: false Location Properties: DataLines: [1 Inf] VariableNamesLine: 0 RowNamesColumn: 0 VariableUnitsLine: 0 VariableDescriptionsLine: 0 To display a preview of the table, use preview
ファイルを読み取り、3 番目の列をテキストではなく数値としてインポートします。
T = readtable('hexAndBinary.txt',opts)
T=3×4 table
Var1 Var2 Var3 Var4
_____ ____ _____ ___________
255 255 51193 {'Device1'}
256 4 1471 {'Device2'}
43981 129 61455 {'Device3'}
filename
— 読み取るファイルの名前読み取るファイルの名前。文字ベクトルまたは string スカラーとして指定します。
ファイルの場所によって、filename
は次のいずれかの形式をとります。
場所 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
現在のフォルダー、または MATLAB® パス上のフォルダー | ファイル名を 例: | ||||||||
フォルダー内のファイル | ファイルが現在のフォルダーまたは MATLAB パス上のフォルダーにない場合は、 例: 例: | ||||||||
リモートの場所 | リモートの場所に保存されたファイルの場合、
リモートの場所に基づいて、
詳細については、リモート データの操作を参照してください。 例: |
filename
にファイル拡張子が含まれる場合、インポート関数は拡張子からファイル形式を判別します。それ以外の場合は、名前と値のペアの引数 'FileType'
を指定してファイルの種類を示さなければなりません。
Microsoft® Excel® ソフトウェアがインストールされている Windows® システムで、インポート関数は、使用している Excel のバージョンで認識されるすべての Excel スプレッドシート ファイル形式を読み取ります。
システムに Excel for Windows がない場合、または MATLAB Online™ を使用している場合、インポート関数は UseExcel
プロパティが false
に設定されている状態で動作し、.xls, .xlsx, .xlsm, .xltx, and .xltm
ファイルのみを読み取ります。
区切りテキスト ファイルの場合、インポート関数はファイル内の空のフィールドを、NaN
(数値変数の場合) または空の文字ベクトル (テキスト変数の場合) のどちらかに変換します。テキスト ファイルのすべての行には同じ数の区切り記号がなければなりません。インポート関数はファイル内の意味のない空白を無視します。
データ型: char
| string
opts
— ファイル インポート オプションSpreadsheetImportOptions
| DelimitedtextImportOptions
| FixedWidthImportOptions
ファイル インポート オプション。関数 detectImportOptions
によって作成された SpreadsheetImportOptions
オブジェクト、DelimitedTextImportOptions
オブジェクトまたは FixedWidthImportOptions
オブジェクトとして指定します。opts
オブジェクトにはデータ インポートのプロセスを制御するプロパティが含まれています。各オブジェクトのプロパティの詳細については、該当するオブジェクトのページを参照してください。
ファイルの種類 | 出力 |
---|---|
スプレッドシート ファイル | SpreadsheetImportOptions オブジェクト |
テキスト ファイル | DelimitedTextImportOptions オブジェクト |
固定幅テキスト ファイル | FixedWidthImportOptions オブジェクト |
オプションの Name,Value
の引数ペアをコンマ区切りで指定します。Name
は引数名で、Value
は対応する値です。Name
は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前と値のペアの引数を任意の順序で指定できます。
'ReadVariableNames',false
は、ファイルの最初の行が変数名に対応しないことを示します。読み取り時は次のようになります。
テキスト ファイルの場合、FileType
、ReadVariableNames
、ReadRowNames
、TreatAsEmpty
、DatetimeType
、Delimiter
、HeaderLines
、Format
、EmptyValue
、MultipleDelimsAsOne
、CollectOutput
、CommentStyle
、ExpChars
、EndOfLine
、DateLocale
、Encoding
、HexType
および BinaryType
のパラメーター名のみが適用されます。
スプレッドシート ファイルの場合、FileType
、ReadVariableNames
、ReadRowNames
、TreatAsEmpty
、DatetimeType
、Sheet
、Range
、UseExcel
および TextType
のパラメーター名のみが適用されます。
opts
インポート オプションをもつテキスト ファイルまたはスプレッドシート ファイルの場合、ReadVariableNames
、ReadRowNames
、DateLocale
、Encoding
、Sheet
および UseExcel
のパラメーター名のみが適用されます。
'FileType'
— ファイルの種類'text'
| 'spreadsheet'
ファイルの種類。'FileType'
と 'text'
または 'spreadsheet'
で構成されるコンマ区切りのペアとして指定します。
filename
にファイル拡張子が含まれない場合、または次の拡張子以外の場合は、名前と値のペアの引数 'FileType'
を指定します。
区切りテキスト ファイルの場合、.txt
、.dat
または .csv
スプレッドシート ファイルの場合、.xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
, .xltx
または .ods
例: 'FileType','text'
データ型: char
| string
'ReadVariableNames'
— 最初の行を変数名として読み取るtrue
| false
| 1
| 0
最初の行を変数名として読み取るかどうかを示すインジケーター。'ReadVariableNames'
と、true
、false
、1
または 0
で構成されるコンマ区切りのペアとして指定します。指定しない場合、readtable
は変数名の有無を自動的に検出します。
インジケーター | 説明 |
---|---|
| 読み取る領域の最初の行にテーブルの変数名が含まれている場合に使用します。 |
| 読み取る領域の最初の行にテーブルのデータが含まれている場合に使用します。 |
指定なし | 指定しない場合、readtable は true または false を自動的に検出し、それに応じて続行します。 |
メモ: 'ReadVariableNames'
と 'ReadRowNames'
の両方の論理インジケーターが true
の場合、readtable
は領域の最初の行の最初の列にある名前を T.Properties.DimensionNames
プロパティの最初の次元の名前として読み取ります。
インポート オプションの opts
に加えて引数 ReadVariableNames
を指定した場合、readtable
の動作が指定に基づき変化します。
ReadVariableNames
が true
の場合、インポート オプション オブジェクトの VariableNamesRange
または VariableNamesLine
プロパティを使用して、指定されたファイルから変数名を読み取ります。
ReadVariableNames
が false
の場合、インポート オプション オブジェクトの VariableNames
プロパティから変数名を読み取ります。
'ReadRowNames'
— 最初の列を行名として読み取るかどうかを示すインジケーターfalse
(既定値) | true
| 0
| 1
最初の列を行名として読み取るかどうかを示すインジケーター。'ReadRowNames'
と、false
、true
、0
または 1
で構成されるコンマ区切りのペアとして指定します。
インジケーター | 説明 |
---|---|
| 読み取る領域の最初の列にテーブルの行名ではなくデータが含まれている場合に使用します。 |
| 読み取る領域の最初の列にテーブルの行名が含まれている場合に使用します。 |
指定なし | 指定されていない場合、readtable は false と仮定します。 |
メモ: 'ReadVariableNames'
と 'ReadRowNames'
の両方の論理インジケーターが true
の場合、readtable
は領域の最初の行の最初の列にある名前を T.Properties.DimensionNames
プロパティの最初の次元の名前として読み取ります。
インポート オプションの opts
に加えて引数 ReadRowNames
を指定した場合、readtable
の動作が指定に基づき変化します。
ReadRowNames
が true
の場合、インポート オプション オブジェクトの RowNamesRange
または RowNameColumn
プロパティを使用して、指定されたファイルから行名を読み取ります。
ReadRowNames
が false
の場合、行名をインポートしません。
'TreatAsEmpty'
— 空の値として扱うプレースホルダー テキスト空の値として扱うプレースホルダー テキスト。'TreatAsEmpty'
と、文字ベクトル、文字ベクトルの cell 配列、string または string 配列で構成されるコンマ区切りのペアとして指定します。これらの文字に対応する table 要素は NaN
に設定されます。
'TreatAsEmpty'
はファイル内の数値列にのみ適用され、readtable
は '-99'
のような数値リテラルを受け取りません。
例: 'TreatAsEmpty','N/A'
または 'TreatAsEmpty',"N/A"
は数値列内の N/A
を NaN
に設定します。
例: 'TreatAsEmpty',{'.','NA','N/A'}
または 'TreatAsEmpty',[".","NA","N/A"]
は数値列内の .
、NA
および N/A
を NaN
に設定します。
データ型: char
| string
'TextType'
— インポートされるテキスト データの型 'char'
(既定値) | 'string'
インポートされるテキスト データの型。'TextType'
と 'char'
または 'string'
で構成されるコンマ区切りのペアとして指定します。
'char'
— テキスト データを文字ベクトルとして MATLAB にインポートします。
'string'
— テキスト データを string 配列として MATLAB にインポートします。
例: 'TextType','char'
'DatetimeType'
— インポートされる日付と時刻のデータの型'datetime'
(既定値) | 'text'
| 'exceldatenum'
(スプレッドシート ファイルのみ)インポートされる日付と時刻のデータの型。'DatetimeType'
と、'datetime'
、'text'
、'exceldatenum'
のいずれかの値で構成されるコンマ区切りのペアとして指定します。値 'exceldatenum'
はスプレッドシート ファイルのみに適用され、テキスト ファイルに対しては有効ではありません。
値 | インポートされる日付と時刻のデータの型 |
---|---|
'datetime' | MATLAB の 詳細については、 |
'text' |
|
'exceldatenum' | Excel のシリアル日付値 シリアル日付値は、指定された基準日からの日数に等しい単一の数値です。Excel のシリアル日付値では MATLAB のシリアル日付値とは異なる基準日が使用されています。Excel の日付の詳細については、 |
データ型: char
| string
'PreserveVariableNames'
— 変数名を保持するかどうかのフラグfalse
(既定値) | true
変数名を保持するかどうかのフラグ。PreserveVariableNames
と、true
または false
のいずれかで構成されるコンマ区切りのペアとして指定します。
true
— スペースや非 ASCII 文字を含む変数名など、有効な MATLAB 識別子ではない変数名を保持。
false
— 無効な変数名 (関数 isvarname
で判定) を、有効な MATLAB 識別子に変換。
R2019b 以降、変数名と行名には、スペースや非 ASCII 文字など任意の文字を含めることができます。また、英字だけでなく任意の文字で始めることができます。変数名と行名は、有効な MATLAB 識別子 (関数 isvarname
で判定) である必要はありません。これらの変数名と行名を保持するには、PreserveVariableNames
を true
に設定します。
'Delimiter'
— フィールドの区切り記号フィールドの区切り記号。'Delimiter'
と文字ベクトル、文字ベクトルの cell 配列、または string で構成されるコンマ区切りのペアとして指定します。Delimiter
は、コンマ ','
やピリオド '.'
などの有効な文字を使用して指定します。
次の表は、一般的に使用されるフィールドの区切り記号の一部を示しています。
指定子 | フィールドの区切り記号 |
---|---|
| コンマ |
| スペース |
| タブ |
| セミコロン |
| 縦棒 |
指定なし | 指定されていない場合、 |
連続する区切り記号を 1 つの区切り記号として扱うには、Delimiter
を文字ベクトルの cell 配列として指定します。さらに、MultipleDelimsAsOne
オプションも指定しなければなりません。
例: 'Delimiter',','
または 'Delimiter','comma'
データ型: char
| string
| cell
'HeaderLines'
— スキップする行ファイルの先頭でスキップする行。'HeaderLines'
と正の整数で構成されるコンマ区切りのペアとして指定します。指定しない場合、readtable
はスキップする行数を自動的に検出します。
データ型: single
| double
'Format'
— 列の形式'auto'
ファイルの列の形式。'Format'
と 1 つ以上の変換指定子をもつ文字ベクトルまたは string スカラー、または 'auto'
で構成されるコンマ区切りのペアとして指定します。変換指定子は、関数 textscan
が受け入れる指定子と同じです。
形式を指定すると、大きなファイルの速度が大幅に高速化する場合があります。Format
に値を指定しない場合、readtable
は %q
を使用して非数値の列を解釈します。%q
指定子はテキストを読み取り、必要に応じて二重引用符 ("
) を除外します。
名前と値のペア 'Format'
を指定しない場合、関数 readtable
は、データのインポートに関数 detectImportOptions
の結果を使用したかのように動作します。この動作の結果の詳細については、互換性についての考慮事項を参照してください。
'Format','auto'
を指定する場合、作成された変数は、データに応じて double
配列、文字ベクトルの cell 配列、または datetime
配列です。列全体が数値の場合、変数は double
としてインポートされます。列に数値ではない要素が含まれる場合、変数は文字ベクトルの cell 配列、または値が日付と時間を表す場合は datetime
配列としてインポートされます。
データ型: char
| string
'EmptyValue'
— 空の数値フィールドに返す値NaN
(既定値) | スカラー区切り付きテキスト ファイルの空の数値フィールドに返す値は、'EmptyValue'
およびスカラーで構成されるコンマ区切りのペアとして指定します。
'MultipleDelimsAsOne'
— 複数の区切り記号の取り扱い0 (false)
(既定値) | 1 (true)
複数の区切り記号の取り扱いは、'MultipleDelimsAsOne'
と true
または false
で構成されるコンマ区切りのペアとして指定します。true
の場合、インポート関数は連続した区切り記号を 1 つの区切り記号として扱います。区切り記号が空白で分けられて繰り返された場合も、1 つの区切り記号として扱われます。Delimiter
オプションも指定しなければなりません。
例: 'MultipleDelimsAsOne',1
'CollectOutput'
— データ連結を決定する論理インジケーターfalse
(既定値) | true
データ連結を決定する論理インジケーターは、'CollectOutput'
と、true
または false
とで構成されるコンマ区切りのペアとして指定します。true
の場合、インポート関数は同じ基本 MATLAB クラスの連続する出力セルを連結して 1 つの配列にします。
'CommentStyle'
— 無視するテキストを示す記号無視するテキストを示す記号。'CommentStyle'
と、文字ベクトル、文字ベクトルの cell 配列、string、または string 配列で構成されるコンマ区切りのペアとして指定します。
たとえば、'%'
などの文字を指定して、同じ行でその記号の後に続くテキストを無視します。{'/*','*/'}
のように 2 つの文字ベクトルの cell 配列を指定して、それらのシーケンスの間にあるすべてのテキストを無視します。
MATLAB は、各フィールドの最初にだけコメントをチェックします (フィールド内はコメント チェック対象外です)。
例: 'CommentStyle',{'/*','*/'}
データ型: char
| string
'ExpChars'
— 指数文字'eEdD'
(既定値) | 文字ベクトル | 文字列指数文字。'ExpChars'
と文字ベクトルまたは string で構成されるコンマ区切りのペアとして指定します。既定の指数文字は e
、E
、d
および D
です。
データ型: char
| string
'EndOfLine'
— 行末の文字行末の文字。'EndOfLine'
と文字ベクトルまたは string で構成されるコンマ区切りのペアとして指定します。文字ベクトルは '\r\n'
であるか、単一の文字を指定しなければなりません。一般的な行末文字としては、改行文字 ('\n'
) やキャリッジ リターン ('\r'
) があります。'\r\n'
を指定すると、インポート関数は \r
、\n
、その 2 つの組み合わせ (\r\n
) をすべて行末文字として扱います。
既定の行末シーケンスは \n
、\r
または \r\n
のいずれかで、ファイルの内容によって異なります。
ファイルの最後の行の末尾に欠損値および行末シーケンスが存在する場合、インポート関数はそれらのフィールドに空の値を返します。これにより、出力 cell 配列 C
内の個々のセルが確実に同じサイズになります。
例: 'EndOfLine',':'
データ型: char
| string
'DateLocale'
— 日付を読み取るロケール日付を読み取るロケール。'DateLocale'
と、
の形式の文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。ここで、次のようになります。xx
_YY
YY
は国を表す大文字の ISO 3166-1 alpha-2 コード
xx
は言語を表す小文字 2 文字の ISO 639-1 コード
ロケールの一般的な値の一覧については、関数 datetime
の Locale
の名前と値のペア引数を参照してください。
%D
書式指定子を使用してテキストを datetime
値として読み取る場合、DateLocale
を使用して、インポート関数が月と曜日の名前および略語を解釈するためのロケールを指定します。
インポート オプション opts
に加えて引数 DateLocale
を指定した場合、インポート関数は引数 DateLocale
で指定された値を使用して、インポート オプションで定義されたロケールをオーバーライドします。
例: 'DateLocale','ja_JP'
'Encoding'
— 文字エンコード スキーム'UTF-8'
| 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...ファイルに関連付けられた文字エンコード スキーム。'Encoding'
と 'system'
で構成されるコンマ区切りのペア、または標準の文字エンコード スキーム名として指定します。エンコードを指定しない場合、関数 readtable
は自動文字セット検出を使用して、ファイルの読み取り時にエンコードを判断します。
インポート オプションに加えて引数 'Encoding'
を指定した場合、関数 readtable
は 'Encoding'
で指定された値を使用して、インポート オプションで定義されたエンコードをオーバーライドします。
例: 'Encoding','UTF-8'
は、UTF-8 をエンコードとして使用します。
例: 'Encoding','system'
はシステムの既定のエンコードを使用します。
データ型: char
| string
'DurationType'
— duration データの出力データ型'duration'
(既定値) | 'text'
テキスト ファイルからの duration データの出力データ型。'DurationType'
と 'duration'
または 'text'
のいずれかで構成されるコンマ区切りのペアとして指定します。
値 | インポートされる duration データの型 |
---|---|
'duration' | MATLAB の 詳細については、 |
'text' |
|
データ型: char
| string
'HexType'
— 16 進数データの出力データ型'auto'
(既定値) | 'text'
| 'int8'
| 'int16'
| ...16 進数データの出力データ型。'HexType'
と表にリストされているいずれかの値で構成されるコンマ区切りのペアとして指定します。
入力ファイルは 16 進数値をテキストで表します。接頭辞として 0x
または 0X
を使用し、数字として文字 0
~ 9
、a
~ f
、および A
~ F
を使用します (大文字と小文字は同じ数値を表します。たとえば、'0xf'
と '0xF'
はどちらも 15
を表します)。
インポート関数は、16 進数の値を、'HexType'
の値で指定されたデータ型に変換します。
| 出力テーブル変数のデータ型 |
---|---|
| 自動的に検出されるデータ型 |
| 変更されない入力テキスト |
| 8 ビット整数、符号付き |
| 16 ビット整数、符号付き |
| 32 ビット整数、符号付き |
| 64 ビット整数、符号付き |
| 8 ビット整数、符号なし |
| 16 ビット整数、符号なし |
| 32 ビット整数、符号なし |
| 64 ビット整数、符号なし |
例: 'HexType','uint16'
は、16 進数値を表すテキスト ('0xFF'
) を出力テーブルの符号なし 16 ビット整数 (255
など) に変換します。
データ型: char
| string
'BinaryType'
— バイナリ データの出力データ型'auto'
(既定値) | 'text'
| 'int8'
| 'int16'
| ...バイナリ データの出力データ型。'BinaryType'
と表にリストされているいずれかの値で構成されるコンマ区切りのペアとして指定します。
入力ファイルはバイナリ値をテキストで表します。接頭辞として 0b
または 0B
を使用し、数字として文字 0
と 1
を使用します。
インポート関数は、バイナリ値を 'BinaryType'
の値で指定されたデータ型に変換します。
| 出力テーブル変数のデータ型 |
---|---|
| 自動的に検出されるデータ型 |
| 変更されない入力テキスト |
| 8 ビット整数、符号付き |
| 16 ビット整数、符号付き |
| 32 ビット整数、符号付き |
| 64 ビット整数、符号付き |
| 8 ビット整数、符号なし |
| 16 ビット整数、符号なし |
| 32 ビット整数、符号なし |
| 64 ビット整数、符号なし |
例: 'BinaryType','uint16'
は、バイナリ値を表すテキスト ('0b11111111'
など) を出力テーブルの符号なし 16 ビット整数 (255
など) に変換します。
データ型: char
| string
'Sheet'
— 読み取るワークシート1
(既定値) | 正の整数 | 文字ベクトル | 文字列読み取るワークシート。'Sheet'
と、ワークシート インデックスを示す正の整数またはワークシート名を含む文字ベクトルまたは string で構成されるコンマ区切りのペアとして指定します。ワークシート名にコロン (:
) を含めることはできません。スプレッドシート ファイルのシートの名前を調べるには、sheets = sheetnames(filename)
を使用します。詳細については、sheetnames
を参照してください。
インポート オプション opts
に加えて引数 Sheet
を指定した場合、関数 readtable
は引数 Sheet
の指定された値を使用して、インポート オプションで定義されたシート名をオーバーライドします。
例: 'Sheet'
, 2
例: 'Sheet'
, 'MySheetName'
例: 'Sheet'
, "MySheetName"
データ型: char
| string
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'Range'
— ワークシートの読み取り対象部分ワークシートの読み取り対象部分。'Range'
と次のいずれかの形式の文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアで四角形の領域として指定します。
Range の指定方法 | 説明 |
---|---|
開始セル | 文字ベクトル、string スカラー、または 2 要素数値ベクトルとして、データの開始セルを指定します。
開始セルを使用して、インポート関数は、インポートを開始セルで開始し、最後の空の行またはフッター範囲で終了することで、データの範囲を自動的に検出します。 例: |
四角形の範囲 | 構文 例: |
指定なしまたは空 | 指定しない場合、 例: メモ: "使用範囲" とは、スプレッドシート内の実際にデータを含んでいる四角形部分を指します。 |
行範囲 | Excel の行指定子によって開始行と終了行を指定して、行の範囲を表すことができます。これにより、 例: |
列範囲 | Excel の列指定子を使用して開始列と終了列を指定することで、範囲を表すことができます。これにより、 例: |
Excel の名前付き範囲 | Excel では、スプレッドシート内の範囲を表す名前を作成できます。たとえば、スプレッドシートの四角形部分を選択して 例: |
例: 'Range'
, 'A1:F10'
例: 'Range'
, "A1:F10"
—
データ型: char
| string
'UseExcel'
— Microsoft Excel for Windows のインスタンスを起動するためのフラグfalse
(既定値) | true
スプレッドシート データを読み取るときに、Microsoft Excel for Windows のインスタンスを起動するためのフラグ。'UseExcel'
と、true
または false
のいずれかで構成されるコンマ区切りのペアとして指定します。
'UseExcel'
パラメーターは、次の値のいずれかに設定できます。
true
— インポート関数は、ファイルを読み取るときに Microsoft Excel のインスタンスを起動します。
false
— インポート関数は、ファイルを読み取るときに Microsoft Excel のインスタンスを起動しません。このモードで動作しているインポート関数の機能では、サポートするファイル形式および式やマクロなどの対話型機能が異なります。
UseExcel |
|
|
---|---|---|
サポートされているファイル形式 |
|
|
式やマクロなどの対話型機能のサポート | あり | なし |
Windows プラットフォームでスプレッドシート ファイルを読み取るときに Microsoft Excel のインスタンスを起動する場合は、'UseExcel'
パラメーターを true
に設定します。
XLSX 形式の大きなファイルは読み取りに時間がかかることがあります。インポートとエクスポートのパフォーマンスを向上させるためには、XLSB 形式を使用することが Microsoft によって推奨されています。
detectImportOptions
の結果R2020a での動作変更
既定では、関数 readtable
は、関数 detectImportOptions
の結果を使用して表形式データをインポートします。つまり、これら 2 つの関数呼び出しは、同じように動作します。
T = readtable(filename) T = readtable(filename,detectImportOptions(filename))
R2020a では、readtable
の既定の動作には、以前のリリースでの既定の動作とはいくつか違いがあります。
入力フィールドまたは行の説明 | R2020a の | 以前のリリースでの既定の動作 |
---|---|---|
出力 table 変数の名前として割り当てるテキストが最初の行に含まれない | 名前 | データ値の最初の行の値を出力 table 変数の名前に変換する |
ヘッダー行としての複数行のテキスト |
|
|
空のフィールド | 検出されたデータ型の欠損値として扱う | 空の文字ベクトルまたは string として扱う |
引用符内の値 | 検出されたデータ型として扱う | テキストとして扱う |
変換できないテキスト | 検出されたデータ型の欠損値として扱う | テキストとして扱う |
数値以外の文字が、区切り記号なしで数値の後に続く | 文字を非数値として扱う | 数値と数値以外の文字を、区切り記号で区切られているかのように扱う |
入力テキスト ファイルに異なる数の区切り記号を含む行がある | 余分な変数を含む出力 table を返す | エラー メッセージを表示する |
R2019b までの既定の動作を行う readtable
を呼び出すには、名前と値のペアの引数 'Format','auto'
を使用します。
T = readtable(filename,'Format','auto')
detectImportOptions
| preview
| readcell
| readmatrix
| readtimetable
| readvars
| setvaropts
| table
| textscan
| writetable
| インポート ツール
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.