writematrix
ファイルへの行列の書き込み
説明
writematrix(
は同種配列 A
)A
をコンマ区切り形式のテキスト ファイルに書き込みます。ファイル名は配列のワークスペースの変数名で、拡張子 .txt
が追加されます。writematrix
が配列名からファイルの名前を作成できない場合、ファイル matrix.txt
に書き込みます。
A
の各変数の各列は、出力ファイルの 1 つの列になります。関数 writematrix
は既存のファイルをいずれも上書きします。
writematrix(___,
は、1 つ以上の Name,Value
)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
スプレッドシートへのデータの追加
スプレッドシートの既存データ下にデータの配列を追加します。
ワークスペースに 2 つの行列を作成します。
M1 = magic(5)
M1 = 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
M2 = [5 10 15 20 25; 30 35 40 45 50]
M2 = 2×5
5 10 15 20 25
30 35 40 45 50
スプレッドシート ファイル M.xls
に行列 M1
を書き込みます。
writematrix(M1,'M.xls')
スプレッドシート ファイルの既存データ下の行列 M2
にデータを追加します。
writematrix(M2,'M.xls','WriteMode','append')
スプレッドシート ファイルを読み取り、行列を表示します。
readmatrix('M.xls')
ans = 7×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
5 10 15 20 25
30 35 40 45 50
テキスト ファイルへの行列データの追加
テキスト ファイルの既存データ下にデータの行列を追加します。
ワークスペースに 2 つの行列を作成します。
fibonacci1 = [1 1 2 3; 5 8 13 21; 34 55 89 144]
fibonacci1 = 3×4
1 1 2 3
5 8 13 21
34 55 89 144
fibonacci2 = [233 377 610 987]
fibonacci2 = 1×4
233 377 610 987
テキスト ファイル fibonacci.txt
に行列 fibonacci1
を書き込みます。
writematrix(fibonacci1,'fibonacci.txt')
テキスト ファイルの既存データ下の fibonacci2
にデータを追加します。
writematrix(fibonacci2,'fibonacci.txt','WriteMode','append')
テキスト ファイルを読み取り、行列を表示します。
readmatrix('fibonacci.txt')
ans = 4×4
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
入力引数
A
— 入力データ
行列
入力データ。行列として指定します。
filename
— ファイル名
文字ベクトル | string スカラー
ファイル名。文字ベクトルまたは string スカラーとして指定します。
書き込み先の場所によって、filename
は次のいずれかの形式にできます。
場所 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
現在のフォルダー | 現在のフォルダーに書き込むには、ファイルの名前を 例: | ||||||||
その他のフォルダー | 現在のフォルダーとは異なるフォルダーに書き込むには、絶対パス名または相対パス名を 例: 例: | ||||||||
リモートの場所 | リモートの場所に書き込むには、
リモートの場所に基づいて、
詳細については、リモート データの操作を参照してください。 例: |
filename
にファイル拡張子が含まれる場合、書き込み関数は拡張子からファイル形式を判別します。そうでない場合、書き込み関数はコンマ区切りのテキスト ファイルを作成し、拡張子.txt
を追加します。代替方法として、ファイル拡張子を付けずにfilename
を指定し、'FileType'
名前と値のペアの引数を含めてファイルの種類を示すことができます。
filename
が存在しない場合、書き込み関数がファイルを作成します。filename
が既存のテキスト ファイルの名前である場合、書き込み関数はそのファイルを上書きします。filename
が既存のスプレッドシート ファイルの名前である場合、書き込み関数はそのデータを指定した場所に書き込みますが、入力データの範囲外にあるいずれの値も上書きしません。
データ型: char
| string
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: 'FileType',text
は、変数名が出力ファイルの最初の行として含まれないようにすることを示します。
FileType
— ファイルの種類
'text'
| 'spreadsheet'
ファイルの種類。'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 スカラー
日付を書き込むためのロケール。'DateLocale'
と、文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。datetime
値をファイルに書き込む場合、DateLocale
を使用して writematrix
が月と曜日の名前および略語を書き込むロケールを指定します。
の形式の文字ベクトルまたは string。xx
_YY
xx
は ISO 639-1 で定義された小文字 2 文字の言語コードで、YY
は ISO 3166-1 alpha-2 で定義された大文字の国コードです。ロケールの一般的な値の一覧については、関数 datetime
の Locale
の名前と値のペア引数を参照してください。
日付が Excel 形式の日付として記述できる場合、書き込み関数は常に 'DateLocale'
パラメーターの値を無視します。
例: 'DateLocale','ja_JP'
データ型: char
| string
WriteMode
— 書き込みモード
文字ベクトル | string スカラー
書き込みモード。'WriteMode'
と、文字ベクトルまたは string スカラーから構成されるコンマ区切りのペアとして指定します。ファイルの種類に基づいて、書き込みモードを選択します。
ファイルの種類 | 書き込みモード |
---|---|
テキスト ファイル |
指定したファイルが存在しない場合、書き込み関数は新しいファイルを作成してデータを書き込みます。 |
スプレッドシート ファイル |
|
WriteVariableNames
がtrue
である場合、書き込み関数は書き込みモード'append'
をサポートしません。スプレッドシート ファイルの場合、次となります。
書き込みモードが
'append'
である場合、書き込み関数はRange
パラメーターをサポートしません。指定したファイルが存在しない場合、書き込み関数は
'replacefile'
と同じアクションを実行します。
例: 'WriteMode','append'
データ型: char
| string
Delimiter
— フィールドの区切り記号
文字ベクトル | string スカラー
フィールドの区切り記号。'Delimiter'
と、次の指定子のいずれかを含む文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。
指定子 | フィールドの区切り記号 |
---|---|
| コンマ。これは既定の動作です。 |
| スペース |
| タブ |
| セミコロン |
| 縦棒 |
'Delimiter'
名前と値のペアは区切り付きテキスト ファイルに対してのみ使用できます。
例: 'Delimiter','space'
データ型: char
| string
QuoteStrings
— 引用符付きテキスト書き込みのインジケーター
"minimal"
(既定値) | "all"
| "none"
引用符付きテキスト書き込みのインジケーター。"minimal"
、"all"
、または "none"
として指定します。
QuoteStrings
が"minimal"
の場合、この関数は区切り記号、行末、または二重引用符が含まれるすべての変数を二重引用符で囲みます。QuoteStrings
が"all"
の場合、この関数はすべてのテキスト変数、categorical 変数、datetime 変数、duration 変数を二重引用符で囲みます。QuoteStrings
が"none"
の場合、この関数は変数を二重引用符で囲みません。
名前と値の引数 QuoteStrings
は、区切り形式のテキスト ファイルでのみ使用できます。
Encoding
— 文字エンコード スキーム
'UTF-8'
(既定値) | 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...
ファイルに関連付けられた文字エンコード スキーム。'Encoding'
と 'system'
で構成されるコンマ区切りのペア、または標準の文字エンコード スキーム名として指定します。エンコードを何も指定しない場合、書き込み関数は UTF-8 を使用してファイルに書き込みます。
例: 'Encoding','UTF-8'
は、UTF-8 をエンコードとして使用します。
データ型: char
| string
Sheet
— 書き込み先のワークシート
文字ベクトル | string スカラー | 正の整数
書き込み先のワークシート。'Sheet'
と、ワークシート名またはワークシート インデックスを示す正の整数を含む文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。ワークシート名にコロン (:
) を含めることはできません。スプレッドシート ファイルのシートの名前を調べるには、sheets = sheetnames(filename)
を使用します。詳細については、sheetnames
を参照してください。
書き込み先のワークシートを、名前またはインデックスで指定します。
名前 — 指定したシート名がファイルに存在しない場合、書き込み関数がワークシート コレクションの最後に新しいシートを追加します。
インデックス — 指定したシート インデックスがワークシート数より大きい場合、書き込み関数が、ワークブック内のワークシートの数がシート インデックスと等しくなるまで空のシートを追加します。書き込み関数は新しいワークシートが追加されたことを示す警告も生成します。
'Sheet'
名前と値のペアはスプレッドシート ファイルでのみ使用できます。
例: 'Sheet'
,2
例: 'Sheet'
, 'MySheetName'
データ型: char
| string
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Range
— 書き込み対象のワークシートの四角形部分
文字ベクトル | string スカラー
書き込み対象のワークシートの四角形部分。'Range'
と、次のいずれかの形式の文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。
Range の値の形式 | 説明 |
---|---|
' |
例: |
' |
例:
|
'Range'
名前と値のペアは、Excel ファイルと一緒にのみ使用できます。
例: 'Range'
, 'A1:F10'
データ型: char
| string
UseExcel
— Microsoft® Excel for Windows のインスタンスを起動するためのフラグ
false
(既定値) | true
スプレッドシート データを書き込むときに、Windows 版 Microsoft Excel のインスタンスを起動するためのフラグ。'UseExcel'
と、true
または false
のいずれかで構成されるコンマ区切りのペアとして指定します。
'UseExcel'
パラメーターは、次の値のいずれかに設定できます。
true
— 書き込み関数はファイルを書き込むときに Microsoft Excel のインスタンスを起動します。false
— 書き込み関数はファイルを書き込むときに Microsoft Excel のインスタンスを起動しません。このモードで動作している書き込み機能では、サポートするファイル形式および式やマクロなどの対話型機能が異なります。
UseExcel |
|
|
---|---|---|
サポートされているファイル形式 |
|
|
式やマクロなどの対話型機能のサポート | あり | なし |
Windows プラットフォームでスプレッドシート ファイルに書き込むときに、Microsoft Excel のインスタンスを起動するには、'UseExcel'
パラメーターを true
に設定します。
UseExcel
は非対話型の自動化された環境ではサポートされません。
AutoFitWidth
— 列幅の自動調整
true
(既定値) | false
列幅の自動調整。true
または false
として指定します。0
の値または false
を指定すると、writematrix
はセルのデータに合わせる列幅の自動調整を行いません。
例: 'AutoFitWidth'
,0
PreserveFormat
— セルの書式設定の保持
true
(既定値) | false
既存スプレッドシートのセルの書式設定の保持。true
または false
として指定します。false
を指定すると、writematrix
はスプレッドシートのセルの書式設定を保持しません。書式設定には、フォント、セルの境界線、色付きのセルなどの要素が含まれます。
datetime
データをスプレッドシート ファイルに書き込む場合、既存のセルの書式設定を保持するには、'PreserveFormat'
と 'UseExcel'
の両方の名前と値のペアを true
に設定しなければなりません。datetime
データをファイルに書き込む際に 'UseExcel'
が false
に、'PreserveFormat'
が true
に設定されていると、writematrix
はファイルの既存のセルの書式設定を保持しません。
例: 'PreserveFormat'
,false
制限
writematrix
はスパース行列をサポートしません。
アルゴリズム
場合によっては、関数
writematrix
で作成したファイルが入力データを正確に表していないことがあります。これは、関数readmatrix
を使用してそのファイルを読み取ったときに判明します。結果のデータに、元の配列と完全に同じ形式または内容が含まれない可能性があります。配列を保存し、後で元の配列と厳密に一致する同一のデータおよび構成を復元する必要がある場合は、MAT ファイルとして保存します。次の場合に、writematrix
が書き込むデータは厳密に一致しません。writematrix
がlong g
形式を使用した数値データと、categorical データまたは文字データを引用符なしのテキストとして書き出す。writematrix
が次元数が 2 を超える配列を 2 次元配列として、後続の次元を折りたたんで書き出す。
Excel は
Inf
値を65535
に変換します。MATLAB® はNaN
、NaT
、categorical 値<undefined>
および string 値<missing>
を空のセルに変換します。
バージョン履歴
R2019a で導入
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
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: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)