ドキュメンテーション

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

writematrix

ファイルへの行列の書き込み

説明

writematrix(A) は同種配列 A をコンマ区切り形式のテキスト ファイルに書き込みます。ファイル名は配列のワークスペースの変数名で、拡張子 .txt が追加されます。writematrix が配列名からファイルの名前を作成できない場合、ファイル matrix.txt に書き込みます。

A の各変数の各列は、出力ファイルの 1 つの列になります。関数 writematrix は既存のファイルをいずれも上書きします。

writematrix(A,filename) は、filename で指定された名前と拡張子のファイルに書き込みます。

writematrix は、指定された拡張子に基づいてファイル形式を判別します。拡張子は、次のいずれかでなければなりません。

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

  • Excel® スプレッドシート ファイルの場合、.xls.xlsm または .xlsx

  • Excel for Windows® を備えたシステムでサポートされる Excel スプレッドシート ファイルの場合、.xlsb

writematrix(___,Name,Value) は、1 つ以上の Name,Value ペアの引数で指定された追加のオプションを使用して、配列をファイルに書き込み、前述の構文の任意の入力引数を含めることができます。

すべて折りたたむ

行列を作成し、コンマ区切りのテキスト ファイルに書き込んでから、その行列を区切り記号が異なる別のテキスト ファイルに書き込みます。

ワークスペースに行列を作成します。

M = magic(5)
M = 5×5

    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

行列をコンマ区切り形式のテキスト ファイルに書き込んで、ファイルの内容を表示します。関数 writematrix は、M.txt という名前のテキスト ファイルを出力します。

writematrix(M)
type 'M.txt'
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

同じ行列を区切り記号が異なるテキスト ファイルに書き込むには、'Delimiter' の名前と値のペアを使用します。

writematrix(M,'M_tab.txt','Delimiter','tab')
type 'M_tab.txt'
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

行列を作成し、スプレッドシート ファイルに書き込んでから、ファイルの内容を読み取って表示します。

ワークスペースに行列を作成します。

M = magic(5)
M = 5×5

    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

スプレッドシート ファイルに行列を書き込みます。

writematrix(M,'M.xls')

M.xls から行列を読み取って表示します。

readmatrix('M.xls')
ans = 5×5

    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

行列を作成して、スプレッドシート ファイルの指定したシートおよび範囲に書き込みます。

ワークスペースに行列を作成します。

M = magic(5)
M = 5×5

    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

行列を M.xls (ファイルの 2 つ目のワークシートの 3 列目から) に書き込みます。

writematrix(M,'M.xls','Sheet',2,'Range','A3:E8')

行列を読み取って表示します。

readmatrix('M.xls','Sheet',2,'Range','A3:E8')
ans = 5×5

    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

入力引数

すべて折りたたむ

入力データ。行列として指定します。

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

書き込み先の場所によって、filename は次のいずれかの形式にできます。

場所

形式

現在のフォルダー

現在のフォルダーに書き込むには、ファイルの名前を filename に指定します。

例: 'myTextFile.csv'

その他のフォルダー

現在のフォルダーとは異なるフォルダーに書き込むには、絶対パス名または相対パス名を filename に指定します。

例: 'C:\myFolder\myTextFile.csv'

例: 'myFolder\myExcelFile.xlsx'

リモートの場所

リモートの場所に書き込むには、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.xlsx'

  • filename にファイル拡張子が含まれる場合、書き込み関数は拡張子からファイル形式を判別します。そうでない場合、書き込み関数はコンマ区切りのテキスト ファイルを作成し、拡張子 .txt を追加します。代替方法として、ファイル拡張子を付けずに filename を指定し、'FileType' 名前と値のペアの引数を含めてファイルの種類を示すことができます。

  • filename が存在しない場合、書き込み関数がファイルを作成します。

  • filename が既存のテキスト ファイルの名前である場合、書き込み関数はそのファイルを上書きします。

  • filename が既存のスプレッドシート ファイルの名前である場合、書き込み関数はそのデータを指定した場所に書き込みますが、入力データの範囲外にあるいずれの値も上書きしません。

データ型: char | string

名前と値のペアの引数

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

例: 'FileType',text は、変数名が出力ファイルの最初の行として含まれないようにすることを示します。

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

すべて折りたたむ

ファイルの種類。'FileType' と、'text' または 'spreadsheet' を含む文字ベクトルまたは string から構成されるコンマ区切りのペアとして指定します。

'FileType' 名前と値ペアは、filename 入力引数と一緒に使用しなければなりません。filename 入力引数に標準のファイル拡張子が含まれている場合、'FileType' の名前と値のペアの引数を指定する必要はありません。次の標準のファイル拡張子は、書き込み関数で認識されます。

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

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

  • Excel for Windows を備えたシステムでサポートされる Excel スプレッドシート ファイルの場合、.xlsb

例: 'FileType','spreadsheet'

データ型: char | string

日付を書き込むためのロケール。'DateLocale' と、文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。datetime 値をファイルに書き込む場合、DateLocale を使用して writetable が月と曜日の名前および略語を書き込むロケールを指定します。xx_YY の形式の文字ベクトルまたは string。xx は ISO 639-1 で定義された小文字 2 文字の言語コードで、YY は ISO 3166-1 alpha-2 で定義された大文字の国コードです。ロケールの一般的な値の一覧については、関数 datetimeLocale の名前と値のペア引数を参照してください。

日付が Excel 形式の日付として記述できる場合、書き込み関数は常に 'DateLocale' パラメーターの値を無視します。

例: 'DateLocale','ja_JP'

データ型: char | string

テキスト ファイルのみ

すべて折りたたむ

フィールドの区切り記号。'Delimiter' と、次の指定子のいずれかを含む文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。

指定子

フィールドの区切り記号

','

'comma'

コンマ。これは既定の動作です。

' '

'space'

スペース

'\t'

'tab'

タブ

';'

'semi'

セミコロン

'|'

'bar'

縦棒

'Delimiter' 名前と値のペアは区切り付きテキスト ファイルに対してのみ使用できます。

例: 'Delimiter','space'

データ型: char | string

引用符付きテキスト書き込みのインジケーター。'QuoteStrings' と、false または true のいずれかで構成されるコンマ区切りのペアとして指定します。'QuoteStrings'true の場合、書き込み関数はテキストを二重引用符で囲み、テキストの一部として表示される二重引用符をすべて 2 つの二重引用符に置き換えます。

'QuoteStrings' の名前と値のペアは区切り付きテキスト ファイルでのみ使用できます。

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

'Big5'

'ISO-8859-1'

'windows-874'

'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

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

すべて折りたたむ

書き込み先のワークシート。'Sheet' と、ワークシート名またはワークシート インデックスを示す正の整数を含む文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。ワークシート名にコロン (:) を含めることはできません。スプレッドシート ファイルのシートの名前を決めるには、[status,sheets] = xlsfinfo(filename) を使用します。

シートが存在しない場合は、書き込み関数がワークシート コレクションの最後に新しいシートを追加します。シートがワークシート数より大きいインデックスの場合は、ワークブック内のワークシートの数がシート インデックスと同じになるまで、空のシートを追加します。いずれの場合でも、書き込み関数は新しいワークシートが追加されたことを示す警告も生成します。

'Sheet' 名前と値のペアはスプレッドシート ファイルでのみ使用できます。

例: 'Sheet',2

例: 'Sheet', 'MySheetName'

データ型: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Range の値の形式 説明
'Corner1'

Corner1 は、書き込む領域の最初のセルを指定します。書き込み関数はこのセルからデータを書き込みます。

例: 'Range','D2'

'Corner1:Corner2'

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

例: 'Range','D2:H4'

  • 指定範囲が入力データのサイズより小さい場合、書き込み関数は入力データのうち範囲に収まるサブセットのみを書き込みます。

  • 指定範囲が入力データのサイズより大きい場合、書き込み関数は残りの領域をそのままにします。

'Range' 名前と値のペアは、Excel ファイルと一緒にのみ使用できます。

例: 'Range', 'A1:F10'

データ型: char | string

スプレッドシート データを書き込む際に、Windows 版 Microsoft® Excel のインスタンスを起動するためのフラグ。'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

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

あり

なし

アルゴリズム

場合によっては、関数 writematrix で作成したファイルが入力データを正確に表していないことがあります。これは、関数 readmatrix を使用してそのファイルを読み取ったときに判明します。結果のデータに、元の配列と完全に同じ形式または内容が含まれない可能性があります。配列を保存し、後で元の配列と厳密に一致する同一のデータおよび構成を復元する必要がある場合は、MAT ファイルとして保存します。次の場合に、writematrix が書き込むデータは厳密に一致しません。

  • writematrixlong g 形式を使用した数値データと、categorical データまたは文字データを引用符なしのテキストとして書き出す。

  • writematrix が次元数が 2 を超える配列を 2 次元配列として、後続の次元を折りたたんで書き出す。

R2019a で導入