ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

detectImportOptions

ファイルの内容に基づくインポート オプションの作成

構文

opts = detectImportOptions(filename)
opts = detectImportOptions(filename,Name,Value)

説明

opts = detectImportOptions(filename) は、ファイル内のテーブルを検索し、テーブルをインポートするためのインポート オプションを返します。オプション オブジェクトを変更し、それを readtable とともに使用して、MATLAB® がテーブル データをインポートする方法を制御できます。返されるオプションのタイプは、ファイル拡張子によって決まります。たとえば、filename がスプレッドシート ファイルの場合、関数は SpreadsheetImportOptions オブジェクトを返します。ただし、filename がテキスト ファイルの場合、関数は DelimitedTextImportOptions オブジェクトまたは FixedWidthImportOptions オブジェクトを返します。

opts = detectImportOptions(filename,Name,Value) は、1 つ以上の Name,Value ペアの引数によって指定された追加パラメーターを使用して、ファイル内のテーブルを検索します。

すべて折りたたむ

スプレッドシート ファイルのインポート オプションを検出し、インポートする変数を指定してから、データを読み取ります。

ファイルからインポート オプション オブジェクトを作成します。

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

   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    

インポート オプションを作成し、複数の変数に対しデータ型を適用してから、データを読み取ります。

テキスト ファイルからインポート オプション オブジェクトを作成します。

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: 'UTF-8'

   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

   Location Properties:
                    DataLines: [2 Inf]
            VariableNamesLine: 1
               RowNamesColumn: 0
            VariableUnitsLine: 0
     VariableDescriptionsLine: 0 
	To display a preview of the table, use preview

変数 TaxiInTaxiOutType プロパティを確認します。

getvaropts(opts,{'TaxiIn','TaxiOut'})
ans = 
  1x2 TextVariableImportOptions array with properties:

    WhitespaceRule
    Type
    FillValue
    Name
    QuoteRule
    TreatAsMissing
    Prefixes
    Suffixes
    EmptyFieldRule

変数 TaxiInTaxiOut の型を 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  

インポート オプションを指定して、テキスト データを string データ型としてインポートします。

ファイルのオプション オブジェクトを作成します。

opts = detectImportOptions('outages.csv');

readtable を使用してインポートする変数を指定してから、概要を表示します。選択された変数のデータ型は char です。

opts.SelectedVariableNames = {'Region','Cause'};
T = readtable('outages.csv',opts);
summary(T)
Variables:

    Region: 1468x1 cell array of character vectors

    Cause: 1468x1 cell array of character vectors

テキスト データを string データ型としてインポートしてから、TextType の名前と値のペアを指定してインポート オプションを作成します。

opts = detectImportOptions('outages.csv','TextType','string');

readtable を使用してインポートする変数を指定してから、概要を表示します。ここで、選択された変数のデータ型は string です。

opts.SelectedVariableNames = {'Region','Cause'};
T = readtable('outages.csv',opts);
summary(T)
Variables:

    Region: 1468x1 string

    Cause: 1468x1 string

入力引数

すべて折りたたむ

読み取るファイルの名前。文字ベクトルまたは string スカラーとして指定します。filename にファイル拡張子が含まれる場合、detectImportOptions は拡張子からファイル形式を判別します。それ以外の場合は、'FileType' の名前と値のペアを指定してファイルの種類を指定しなければなりません。

ファイルの場所によって、filename は次のいずれかの形式をとります。

場所

形式

フォルダー内のファイル

ファイルが現在のフォルダーまたは MATLAB パス上のフォルダーにない場合は、絶対パス名または相対パス名を指定します。

例: 'C:\myFolder\myFile.xlsx'

例: '\imgDir\myFile.txt'

リモートの場所

(Amazon S3™、Windows Azure® Blob ストレージ、HDFS™)

リモートの場所に保存されたファイルの場合、filename
scheme_name://path_to_file の形式の IRI (国際化リソース識別子) として指定されたファイルの絶対パスを含まなければなりません。

scheme_name は、次のいずれかの値にできます。s3wasbwasbs、または hdfs

詳細については、リモート データの操作を参照してください。

例: 's3://bucketname/path_to_file/my_file.csv'

関数 detectImportOptions は、次のファイル拡張子をサポートしています。.txt.dat.csv.xls.xlsb.xlsm.xlsx.xltm.xltx および .ods

メモ

ファイル拡張子 .xlsb.ods は、Excel® for Windows® を備えたプラットフォームでのみサポートされます。

データ型: char | string

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'FileType','text'

パラメーター

すべて折りたたむ

ファイルの種類。'FileType''text' または 'spreadsheet' のいずれかで構成されるコンマ区切りのペアとして指定します。

filename にファイル拡張子が含まれない場合、または次の拡張子以外の場合は、名前と値のペアの引数 'FileType' を指定します。

  • 区切りテキスト ファイルの場合、.txt.dat または .csv

  • スプレッドシート ファイルの場合、.xls.xlsb.xlsm.xlsx.xltm, .xltx または .ods

メモ

ファイル拡張子 .xlsb.ods は、Excel for Windows を備えたプラットフォームでのみサポートされます。

例: 'FileType','text'

データ型: char | string

インポートされるテキスト データの型。'TextType''char' または 'string' で構成されるコンマ区切りのペアとして指定します。

  • 'char' — テキスト データを文字ベクトルとして MATLAB にインポートします。

  • 'string' — テキスト データを string 配列として MATLAB にインポートします。

例: 'TextType','char'

インポートされる日付と時刻データの型。'DatetimeType''datetime''text' または 'exceldatenum' のいずれかで構成されるコンマ区切りのペアとして指定します。値 'exceldatenum' はスプレッドシート ファイルにのみ適用可能で、テキスト ファイルには適用できません。

日付と時刻のデータの型
'datetime'

MATLAB の datetime データ型

詳細については、datetime を参照してください。

'text'
  • TextType の値が char (既定) に設定されている場合、日付と時刻のデータは文字ベクトルの cell 配列として返されます。

  • TextType の値が string に設定されている場合、日付と時刻のデータは string 配列として返されます。

'exceldatenum'

Excel のシリアル日付値

シリアル日付値は、指定された基準日からの日数に等しい単一の数値です。Excel のシリアル日付値では MATLAB のシリアル日付値とは異なる基準日が使用されています。Excel の日付の詳細については、https://support.microsoft.com/en-us/kb/214330 を参照してください。

例: 'DatetimeType','text'

データ型: char | string

必要な変数の数。'NumVariables' と正の整数で構成されるコンマ区切りのペアとして指定します。指定しない場合、変数の数はインポート関数により自動検出されます。

例: 'NumVariables',10

データ型: single | double

ファイルのヘッダーの行数。'NumHeaderLines' と正の整数で構成されるコンマ区切りのペアとして指定します。指定しない場合、ファイル ヘッダーの行数はインポート関数により自動検出されます。

例: 'NumHeaderLines',7

データ型: single | double

スプレッドシート ファイル専用のパラメーター

すべて折りたたむ

読み取り元のシート。空の文字配列、シート名を含む文字ベクトルまたは string スカラー、あるいはシート インデックスを示す正の整数スカラーとして指定します。インポート関数は Sheet プロパティに指定された値に基づいて、表に説明されているように動作します。

指定動作
'' (既定)1 番目のシートからデータをインポートします。
名前スプレッドシート ファイル内のシートの順序に関係なく、一致する名前のシートからデータをインポートします。
整数スプレッドシート ファイル内のシート名に関係なく、整数で示された位置にあるシートからデータをインポートします。

例: 'Sheet7'

例: 7

データ型: char | string | single | double

ワークシートの読み取り対象部分。'Range' と次の形式のいずれかの文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアで指定される四角形の領域として示されます。

Range の指定方法 説明

'Corner1:Corner2'

四角形の範囲

構文 'Corner1:Corner2' を使用して範囲を指定します。Corner1Corner2 は、領域を定義する 2 つの対角です。たとえば、'D2:H4' は、ワークシート上の 2 つの角 D2H4 の間にある 3 行 5 列の四角形領域を表します。名前と値のペアの引数 'Range' では大文字小文字は区別されず、Excel A1 参照スタイル (Excel ヘルプを参照) が使用されます。

例: 'Range','Corner1:Corner2'

''

指定なしまたは空

指定しない場合、使用範囲はインポート関数により自動検出されます。

例: 'Range',''

メモ: "使用範囲" とは、スプレッドシート内で実際にデータが含まれている四角形部分を指します。インポート関数は、データを含まない先頭と末尾の行と列をすべてトリミングして、使用範囲を自動的に検出します。空白のみのテキストはデータと見なされ、使用範囲内に取得されます。

'Row1:Row2'

行範囲

Excel の行指定子を使用して開始行と終了行を指定することで、範囲を表すことができます。これにより、readtable は指定された行内で列の使用範囲を自動的に検出します。たとえば、インポート関数は範囲指定 '1:7' を、1 行目から 7 行目まで (両端を含む) の使用範囲にあるすべての列を読み取る命令として解釈します。

例: 'Range','1:7'

'Column1:Column2'

列範囲

Excel の列指定子を使用して開始列と終了列を指定することで、範囲を表すことができます。これにより、readtable は指定された列内で行の使用範囲を自動的に検出します。たとえば、インポート関数は範囲指定 'A:F' を、A 列目から F 列目まで (両端を含む) の使用範囲にあるすべての行を読み取る命令として解釈します。

例: 'Range','A:F'

'NamedRange'

Excel の名前付き範囲

Excel では、スプレッドシート内の範囲を表す名前を作成できます。たとえば、スプレッドシートの四角形部分を選択して 'myTable' という名前を付けることができます。スプレッドシート内にそのような名前付き範囲が存在する場合、インポート関数はその名前を使用して範囲を読み取ることができます。

例: 'Range','myTable'

データ型: char | string

テキスト ファイル専用のパラメーター

すべて折りたたむ

フィールドの区切り記号。文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列として指定します。

例: '|'

例: {';','*'}

データ型: char | string | cell

空白として扱う文字。1 文字以上が含まれる文字ベクトルまたは string スカラーとして指定します。

例: ' _'

例: '?!.,'

行末の文字。文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列として指定します。

例: '\n'

例: '\r\n'

例: {'\b',':'}

データ型: char | string | cell

ファイルに関連付けられた文字エンコード スキーム。'Encoding''system' で構成されるコンマ区切りのペア、または次の表に示す値のいずれかのような標準の文字エンコード スキーム名として指定します。

'Big5'

'ISO-8859-1'

'windows-847'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

例: 'system' はシステムの既定のエンコードを使用します。

データ型: char | string

コメントのスタイル。文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列として指定します。

たとえば、パーセント記号に続く同じ行のテキストを無視するには、CommentStyle'%' に指定します。

例: {'/*'}

データ型: char | string | cell

テキスト ファイルからの duration データの出力データ型。'DurationType''duration' または 'text' のいずれかで構成されるコンマ区切りのペアとして指定します。

インポートされる duration データの型
'duration'

MATLAB の duration データ型

詳細については、duration を参照してください。

'text'

'DurationType''text' として指定した場合、インポートされる duration データの型は 'TextType' パラメーターで指定された値によって決まります。

  • 'TextType''char' の場合、インポート関数は duration データを文字ベクトルの cell 配列として返します。

  • 'TextType''string' の場合、インポート関数は duration データを string の配列として返します。

データ型: char | string

出力引数

すべて折りたたむ

指定されたファイルのインポート オプション。SpreadsheetImportOptions オブジェクトまたは DelimitedTextImportOptions オブジェクトとして返されます。オプション オブジェクトのタイプは、指定したファイルの種類によって決まります。テキスト ファイル (.txt.dat または .csv) の場合、関数 detectImportOptionsDelimitedTextImportOptions オブジェクトまたは FixedWidthImportOptions オブジェクトを返します。スプレッドシート ファイル (.xls.xlsb.xlsm.xlsx.xltm.xltx または .ods) の場合、関数 detectImportOptionsSpreadsheetImportOptions オブジェクトを返します。

関数 detectImportOptions は、指定されたファイルの内容に基づいて、自動的にこれらのパラメーターを検出して設定します。

スプレッドシート ファイルの場合テキスト ファイルの場合
VariableNames (ある場合)VariableNames (ある場合)
VariableTypesVariableTypes
DataRangeDataLine
VariableNamesRangeVariableNamesLine
 Delimiter
 LeadingDelimitersRule (スペースが区切り記号の場合)
 ConsecutiveDelimitersRule (スペースが区切り記号の場合)
 PartialFieldRule (固定幅のファイルの場合)

R2016b で導入