ドキュメンテーション

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

readmatrix

ファイルからの行列の読み取り

説明

A = readmatrix(filename) は、ファイルから列方向のデータを読み取ることにより配列を作成します。関数 readmatrix は、ファイルのインポート パラメーターの自動検出を実行します。

readmatrix は、ファイル拡張子からファイル形式を判定します。

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

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

数値とテキストが混在するファイルの場合、readmatrix は、既定でデータを数値配列としてインポートします。

A = readmatrix(filename,opts) は、インポート オプションの opts を使用して table を作成します。

A = readmatrix(___,Name,Value) は、1 つ以上の名前と値のペアの引数で指定された追加のオプションを使用して、ファイルから配列を作成します。名前と値のペアを指定する前に、前述の構文の入力引数のいずれかを使用してください。

データ特有のインポート オプションを設定するには、opts オブジェクトを使用するか、名前と値のペアを指定できます。opts に加えて名前と値のペアを指定する場合、readmatrix がサポートするのは次の名前と値のペアのみです。

  • テキスト ファイル — DateLocaleEncoding

  • スプレッドシート ファイル — SheetUseExcel

すべて折りたたむ

basic_matrix.txt の内容を表示し、データを行列にインポートします。

type basic_matrix.txt
6,8,3,1
5,4,7,3
1,6,7,10
4,2,8,2
2,7,5,9
M = readmatrix('basic_matrix.txt')
M = 5×4

     6     8     3     1
     5     4     7     3
     1     6     7    10
     4     2     8     2
     2     7     5     9

basic_matrix.xls の数値データを行列にインポートします。

M = readmatrix('basic_matrix.xls')
M = 5×4

     6     8     3     1
     5     4     7     3
     1     6     7    10
     4     2     8     2
     2     7     5     9

スプレッドシート ファイルのデータをプレビューし、特定のシートおよび範囲から数値データを行列としてインポートします。

スプレッドシート ファイル airlinesmall_subset.xlsx には 1996 年から 2008 年のデータが複数のワークシートに分かれて含まれています。各ワークシートには、指定の年のデータがあります。ファイル airlinesmall_subset.xlsx のデータをプレビューします。関数 preview は、既定で最初のワークシートのデータを表示します。ファイル内の最初の 8 つの変数には数値データが含まれます。

opts = detectImportOptions('airlinesmall_subset.xlsx');
preview('airlinesmall_subset.xlsx',opts)
ans=8×29 table
    Year    Month    DayofMonth    DayOfWeek    DepTime    CRSDepTime    ArrTime    CRSArrTime    UniqueCarrier    FlightNum    TailNum     ActualElapsedTime    CRSElapsedTime    AirTime    ArrDelay    DepDelay    Origin    Dest     Distance    TaxiIn    TaxiOut    Cancelled    CancellationCode    Diverted    CarrierDelay    WeatherDelay    SDelay    SecurityDelay    LateAircraftDelay
    ____    _____    __________    _________    _______    __________    _______    __________    _____________    _________    ________    _________________    ______________    _______    ________    ________    ______    _____    ________    ______    _______    _________    ________________    ________    ____________    ____________    ______    _____________    _________________

    1996      1          18            4         2117         2120        2305         2259           'HP'            415       'N637AW'           108                 99            85           6          -3       'COS'     'PHX'      551         5         18           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          12            5         1252         1245        1511         1500           'HP'            610       'N905AW'            79                 75            58          11           7       'LAX'     'PHX'      370         3         18           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          16            2         1441         1445        1708         1721           'HP'            211       'N165AW'            87                 96            74         -13          -4       'RNO'     'PHX'      601         4          9           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1           1            1         2258         2300        2336         2335           'HP'           1245       'N183AW'            38                 35            20           1          -2       'TUS'     'PHX'      110         6         12           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1           4            4         1814         1814        1901         1910           'US'            683       'N963VJ'            47                 56            34          -9           0       'DTW'     'PIT'      201         6          7           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          31            3         1822         1820        1934         1925           'US'            757       'N912VJ'            72                 65            52           9           2       'PHL'     'PIT'      267         6         14           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          18            4          729          730         841          843           'US'           1564       'N941VJ'            72                 73            58          -2          -1       'DCA'     'PVD'      357         3         11           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          26            5         1704         1705        1829         1839           'NW'           1538       'N960N'             85                 94            69         -10          -1       'DTW'     'RIC'      456         3         13           0               ''              0             ''              ''           ''           ''                 ''        

opts オブジェクトの値を設定し、'2007' という名前のワークシートから最初の 5 つの変数の 10 行をインポートします。

opts.Sheet = '2007';
opts.SelectedVariableNames = [1:5]; 
opts.DataRange = '2:11';
M = readmatrix('airlinesmall_subset.xlsx',opts)
M = 10×5

        2007           1           2           2         711
        2007           1           3           3         652
        2007           1           4           4        1116
        2007           1           5           5         825
        2007           1           7           7        1411
        2007           1           8           1        1935
        2007           1           9           2        2005
        2007           1          11           4        1525
        2007           1          12           5        1133
        2007           1          13           6         922

スプレッドシート ファイルのデータをプレビューし、特定のシートおよび範囲から数値データを行列としてインポートします。

スプレッドシート ファイル airlinesmall_subset.xlsx には 1996 年から 2008 年のデータが複数のワークシートに分かれて含まれています。各ワークシートには、指定の年のデータがあります。ファイル airlinesmall_subset.xlsx のデータをプレビューします。関数 preview は、既定で最初のワークシートのデータを表示します。ファイル内の最初の 8 つの変数には数値データが含まれます。

opts = detectImportOptions('airlinesmall_subset.xlsx');
preview('airlinesmall_subset.xlsx',opts)
ans=8×29 table
    Year    Month    DayofMonth    DayOfWeek    DepTime    CRSDepTime    ArrTime    CRSArrTime    UniqueCarrier    FlightNum    TailNum     ActualElapsedTime    CRSElapsedTime    AirTime    ArrDelay    DepDelay    Origin    Dest     Distance    TaxiIn    TaxiOut    Cancelled    CancellationCode    Diverted    CarrierDelay    WeatherDelay    SDelay    SecurityDelay    LateAircraftDelay
    ____    _____    __________    _________    _______    __________    _______    __________    _____________    _________    ________    _________________    ______________    _______    ________    ________    ______    _____    ________    ______    _______    _________    ________________    ________    ____________    ____________    ______    _____________    _________________

    1996      1          18            4         2117         2120        2305         2259           'HP'            415       'N637AW'           108                 99            85           6          -3       'COS'     'PHX'      551         5         18           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          12            5         1252         1245        1511         1500           'HP'            610       'N905AW'            79                 75            58          11           7       'LAX'     'PHX'      370         3         18           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          16            2         1441         1445        1708         1721           'HP'            211       'N165AW'            87                 96            74         -13          -4       'RNO'     'PHX'      601         4          9           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1           1            1         2258         2300        2336         2335           'HP'           1245       'N183AW'            38                 35            20           1          -2       'TUS'     'PHX'      110         6         12           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1           4            4         1814         1814        1901         1910           'US'            683       'N963VJ'            47                 56            34          -9           0       'DTW'     'PIT'      201         6          7           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          31            3         1822         1820        1934         1925           'US'            757       'N912VJ'            72                 65            52           9           2       'PHL'     'PIT'      267         6         14           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          18            4          729          730         841          843           'US'           1564       'N941VJ'            72                 73            58          -2          -1       'DCA'     'PVD'      357         3         11           0               ''              0             ''              ''           ''           ''                 ''        
    1996      1          26            5         1704         1705        1829         1839           'NW'           1538       'N960N'             85                 94            69         -10          -1       'DTW'     'RIC'      456         3         13           0               ''              0             ''              ''           ''           ''                 ''        

'2007' という名前のワークシートから最初の 5 つの変数の 10 行をインポートします。

M = readmatrix('airlinesmall_subset.xlsx','Sheet','2007','Range','A2:E11')
M = 10×5

        2007           1           2           2         711
        2007           1           3           3         652
        2007           1           4           4        1116
        2007           1           5           5         825
        2007           1           7           7        1411
        2007           1           8           1        1935
        2007           1           9           2        2005
        2007           1          11           4        1525
        2007           1          12           5        1133
        2007           1          13           6         922

入力引数

すべて折りたたむ

読み取るファイルの名前。文字ベクトルまたは string スカラーとして指定します。

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

場所

形式

現在のフォルダー、または MATLAB® パス上のフォルダー

ファイル名を filename で指定します。

例: 'myFile.txt'

フォルダー内のファイル

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

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

例: 'dataDir\myFile.txt'

リモートの場所

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

scheme_name://path_to_file/my_file.ext

リモートの場所に基づいて、scheme_name には次の表の値のいずれかを指定できます。

リモートの場所scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasbwasbs
HDFS™hdfs

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

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

  • filename にファイル拡張子が含まれる場合、インポート関数は拡張子からファイル形式を判別します。それ以外の場合は、名前と値のペアの引数 'FileType' を指定してファイルの種類を示さなければなりません。

  • Microsoft® Excel® ソフトウェアがインストールされている Windows® システムで、インポート関数は、使用している Excel のバージョンで認識されるすべての Excel スプレッドシート ファイル形式を読み取ります。

  • システムに Excel for Windows がない場合、または MATLAB Online™ を使用している場合、インポート関数は UseExcel プロパティが false に設定されている状態で動作し、.xls, .xlsx, .xlsm, .xltx, and .xltm ファイルのみを読み取ります。

  • 区切りテキスト ファイルの場合、インポート関数はファイル内の空のフィールドを、NaN (数値変数の場合) または空の文字ベクトル (テキスト変数の場合) のどちらかに変換します。テキスト ファイルのすべての行には同じ数の区切り記号がなければなりません。インポート関数はファイル内の意味のない空白を無視します。

データ型: char | string

ファイル インポート オプション。関数 detectImportOptions によって作成された SpreadsheetImportOptions オブジェクト、DelimitedTextImportOptions オブジェクトまたは FixedWidthImportOptions オブジェクトとして指定します。opts オブジェクトにはデータ インポートのプロセスを制御するプロパティが含まれています。各オブジェクトのプロパティの詳細については、該当するオブジェクトのページを参照してください。

ファイルの種類出力
スプレッドシート ファイルSpreadsheetImportOptions オブジェクト
テキスト ファイルDelimitedTextImportOptions オブジェクト
固定幅テキスト ファイルFixedWidthImportOptions オブジェクト

名前と値のペアの引数

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

例: 'NumHeaderLines',5 は、表形式データの前の最初の 5 行がヘッダー行であることを示します。

テキスト ファイルとスプレッドシート ファイル

すべて折りたたむ

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

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

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

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

例: 'FileType','text'

データ型: char | string

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

例: 'NumHeaderLines',7

データ型: single | double

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

データ型: single | double

テキストまたはスプレッドシート ファイルから読み取るデータの部分。'Range' と、次のいずれかの形式をとる文字ベクトル、string スカラー、または数値ベクトルで構成されるコンマ区切りのペアとして指定します。

Range の指定方法説明

開始セル

'Cell' または [row col]

文字ベクトル、string スカラー、または 2 要素数値ベクトルとして、データの開始セルを指定します。

  • Excel の A1 表記法を使用した列の文字および行番号を含む文字ベクトルまたは string スカラー。たとえば、A5 は列 A と行 5 が交わる場所にあるセルの識別子です。

  • 開始行と開始列を示す [row col] 形式の 2 要素数値ベクトル。

開始セルを使用して、インポート関数は、インポートを開始セルで開始し、最後の空の行またはフッター範囲で終了することで、データの範囲を自動的に検出します。

例: 'A5' または [5 1]

四角形の範囲

'Corner1:Corner2' または [r1 c1 r2 c2]

次の四角形の範囲フォームのいずれかを使用して、読み取る範囲を正確に指定します。

  • 'Corner1:Corner2' — 読み取る領域を定義する 2 つの対角 Corner1 および Corner2 (Excel の A1 表記法) を使用して範囲を指定します。たとえば、'C2:N15' のようになります。

  • [r1 c1 r2 c2] — 開始行、開始列、終了行および終了列を含む 4 要素数値ベクトルを使用して範囲を指定します。たとえば、[2 3 15 13] のようになります。

インポート関数は、指定された範囲内に含まれるデータのみを読み取ります。指定された範囲内の空のフィールドは欠損セルとしてインポートされます。

行範囲または列範囲

'Row1:Row2' または 'Column1:Column2'

Excel の行番号を使用して、開始行と終了行を示して範囲を指定します。

インポート関数は、指定された行範囲を使用して、最初の空でない列からデータの最後まで読み取ることにより、列の範囲を自動的に検出し、列ごとに 1 つの変数を作成します。

例: '5:500'

あるいは、Excel の列の文字または数字を使用して開始列と終了列を示して、範囲を指定します。

インポート関数は、指定された列範囲を使用して、最初の空でない行からデータの最後またはフッター範囲まで読み取ることにより、行の範囲を自動的に検出します。

指定された範囲の列数は ExpectedNumVariables プロパティで指定された数と一致しなければなりません。

例: 'A:K'

開始行番号

n

正のスカラー行インデックスを使用して、データを含む最初の行を指定します。

インポート関数は、指定された行インデックスを使用して、指定された最初の行からデータの最後またはフッター範囲まで読み取ることにより、データの範囲を自動的に検出します。

例: 5

Excel の名前付き範囲

'NamedRange'

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

例: 'Range','myTable'

指定なしまたは空

''

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

例: 'Range',''

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

データ型: char | string | double

欠損データとして解釈するテキスト。文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列として指定します。

例: 'TreatAsMissing',{'NA','TBD'} は、インポート関数に NA または TBD のすべての出現を欠損フィールドとして処理するように指示します。

データ型: char | string | cell

出力データ型。'OutputType' と次の表のいずれかのデータ型の名前を含む文字ベクトルまたは string スカラーから構成されるコンマ区切りのペアとして指定します。

データの種類出力データ型
数値'uint8''int8''int16''int32''int64''uint16''uint32''uint64''single' または 'double'
テキスト'char' または 'string'
その他の種類'datetime''duration' または 'categorical'

例: 'OutputType','uint8'

データ型: char | string

テキスト ファイルのみ

すべて折りたたむ

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

例: 'Delimiter','|'

例: 'Delimiter',{';','*'}

データ型: char | string | cell

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

例: 'Whitespace',' _'

例: 'Whitespace','?!.,'

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

例: 'LineEnding','\n'

例: 'LineEnding','\r\n'

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

データ型: char | string | cell

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

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

例: 'CommentStyle',{'/*'}

データ型: 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'

 

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

データ型: char | string

日付を読み取るロケール。'DateLocale' と、xx_YY の形式の文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。ここで、次のようになります。

  • YY は国を表す大文字の ISO 3166-1 alpha-2 コード

  • xx は言語を表す小文字 2 文字の ISO 639-1 コード

ロケールの一般的な値の一覧については、関数 datetimeLocale の名前と値のペア引数を参照してください。

%D 書式指定子を使用してテキストを datetime 値として読み取る場合、DateLocale を使用して、インポート関数が月と曜日の名前および略語を解釈するためのロケールを指定します。

インポート オプション opts に加えて引数 DateLocale を指定した場合、インポート関数は引数 DateLocale で指定された値を使用して、インポート オプションで定義されたロケールをオーバーライドします。

例: 'DateLocale','ja_JP'

数値変数内の小数点の区切りを示す文字。文字ベクトルまたは string スカラーとして指定します。インポート関数は、DecimalSeparator の名前と値のペアで指定される文字を使用して、数値の整数部分と小数部分を区別します。

整数データ型に変換すると、小数部分をもつ数値は最も近い整数に丸められます。

例: 名前と値のペアが 'DecimalSeparator',',' のように指定される場合、インポート関数はテキスト "3,14159" を数値 3.14159 としてインポートします。

データ型: char | string

数値変数内の 3 桁ごとの区切りを示す文字。文字ベクトルまたは string スカラーとして指定します。3 桁ごとの区切り文字は視覚的な区切りとして機能し、数値を 3 桁ごとにグループ化します。インポート関数は、ThousandsSeparator の名前と値のペアで指定される文字を使用して、インポートされる数値を解釈します。

例: 名前と値のペアが 'ThousandsSeparator',',' のように指定される場合、インポート関数はテキスト "1,234,000"1234000 としてインポートします。

データ型: char | string

非数値文字を数値変数から削除します。logical true または false として指定します。

例: 名前と値のペアが 'TrimNonNumeric',true のように指定される場合、インポート関数は '$500/-'500 として読み取ります。

データ型: logical

連続する区切り記号を処理する方法。次の表のいずれかの値として指定します。

連続する区切り記号のルール動作
'split'連続する区切り記号を複数のフィールドに分割します。
'join'複数の区切り記号を結合して 1 つの区切り記号にします。
'error'エラーを返し、インポート操作を中止します。

データ型: char | string

先頭の区切り記号を管理する手順。次の表のいずれかの値として指定します。

先頭の区切り記号のルール動作
'keep'区切り記号を維持します。
'ignore'区切り記号を無視します。
'error'エラーを返し、インポート操作を中止します。

スプレッドシート ファイルのみ

すべて折りたたむ

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

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

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

スプレッドシート データを読み取るときに、Microsoft Excel for Windows のインスタンスを起動するためのフラグ。'UseExcel' と、true または false のいずれかで構成されるコンマ区切りのペアとして指定します。

Windows プラットフォームでスプレッドシート ファイルを読み取るときに Microsoft Excel のインスタンスを起動しない場合は、'UseExcel' パラメーターを false に設定します。

'UseExcel' パラメーターは、次の値のいずれかに設定できます。

  • true — インポート関数は、ファイルを読み取るときに Microsoft Excel のインスタンスを起動します。これは、Excel がインストールされている Windows システムの既定の設定です。

  • false — インポート関数は、ファイルを読み取るときに Microsoft Excel のインスタンスを起動しません。Excel のない Windows、Mac、および Linux® では、既定値は false です。このモードで動作しているインポート関数の機能では、サポートするファイル形式および式やマクロなどの対話型機能が異なります。

UseExcel

true

false

サポートされているファイル形式

.xls, .xlsx, .xlsm, .xltx, .xltm, .xlsb, .ods

.xls, .xlsx, .xlsm, .xltx, .xltm

式やマクロなどの対話型機能のサポート

あり

なし

R2019a で導入