writeall
ファイルへのデータストアの書き込み
説明
writeall( は、入力データストア ds,outputLocation)ds のデータを outputLocation で指定された場所の出力ファイルに書き込みます。出力ファイルの数は、データストアが参照するファイルの数と同じです。
writeall( は、1 つ以上の名前と値のペアの引数で指定された追加のオプションを使用してデータを書き込みます。たとえば、ds,outputLocation,Name,Value)'OutputFormat' と 'csv' などのファイル拡張子を指定すると、writeall で作成されるファイルの種類を指定できます。
例
データストアをディスクに書き込み、書き込んだファイルの新しいデータストアを作成します。このプロセスは、作業内容を保存したり、データストアを同僚と共有したりするために役立ちます。
airlinesmall.csv データ セットのデータストアを作成し、'NA' 値を欠損データとして扱います。変数 Year、Month および Carrier のみを選択します。
ds = datastore('airlinesmall.csv'); ds.TreatAsMissing = 'NA'; ds.SelectedVariableNames = {'Month','Year','UniqueCarrier'};
データストアをプレビューします。
preview(ds)
ans=8×3 table
Month Year UniqueCarrier
_____ ____ _____________
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
このデータストアを C:\ ディスクの ExampleData という名前の新規フォルダーに保存します (特に Windows® コンピューターを使用していない場合は、異なる書き込み先を指定することが可能)。'FolderLayout' を 'flatten' として指定して、サブフォルダーを作成せずにデータストア ファイルをターゲット フォルダーに直接配置します。
location = 'C:\ExampleData'; writeall(ds,location,'Folderlayout','flatten')
作業ディレクトリから ds をクリアします。ディスクからデータストアを復元するには、新しいデータストアを作成し、データが書き込まれていた同じフォルダーを参照します。
clear ds
ds2 = datastore(location);データストアをファイルに書き込む際に、'FolderLayout' パラメーターを設定して、フォルダー構造を複製するかフラットにするかを選択できます。入力場所からイメージ データストアを作成し、そのデータストアをファイルに書き出します。次に、フォルダー レイアウトを複製してファイルを出力場所に書き込みます。最後に、ファイルを出力場所にフラット リストとして書き込みます。
自動車と電車のイメージがいくつか格納されている場所 'C:\input\' からイメージ データストアを作成します。

imds = imageDatastore('C:\input\','IncludeSubfolders',true);
このフォルダー構造は一例です。ご使用のマシンでイメージ ファイルが格納されているフォルダー構造に対してこの機能を試すことができます。
入力データセットへの完全修飾パスを含む入力データストアの Folders プロパティを確認します。
imds.Folders
ans =
1×1 cell array
{'C:\input\'}データストアを出力場所 'C:\output\' に書き込みます。'FolderLayout' パラメーターの既定値は 'duplicate' です。したがって、関数 writeall は、入力データストアの Folders プロパティに含まれるすべてのフォルダーを複製し、ファイルを対応する出力フォルダーに書き込みます。
writeall(imds,'C:\output\');

次に、'FolderLayout' を 'flatten' に設定して、データストアのファイルを出力場所 'C:\output\' にフラット リストとして書き込みます。この場合、関数 writeall は入力フォルダー レイアウトを保持せず、代わりにすべてのファイルをフラットな出力場所に書き込みます。
writeall(imds,'C:\output\','FolderLayout','flatten');

詳細については、FolderLayout を参照してください。
FilenamePrefix パラメーターと FilenameSuffix パラメーターを使用して、出力ファイル名の先頭または末尾にテキストを追加できます。入力場所からイメージ データストアを作成します。データストアをファイルに書き出し、ファイル名の先頭にテキストを追加します。次に、データストアを再度書き込み、ファイル名の末尾にテキストを追加します。
自動車と電車のイメージがいくつか格納されている場所 'C:\input\' からイメージ データストアを作成します。

imds = imageDatastore('C:\input\','IncludeSubfolders',true);
このフォルダー構造は一例です。ご使用のマシンでイメージ ファイルが格納されているフォルダー構造に対してこの機能を試すことができます。
次に、ファイルを出力場所に書き込みます。FilenamePrefix の値を 'png_' として指定して、そのテキストを各出力ファイル名の先頭に追加します。
writeall(imds,'C:\output\','FilenamePrefix','png_');

ファイルを別の出力場所に書き込みます。FilenameSuffix の値を '_image' として指定して、そのテキストを各出力ファイル名の末尾に追加します。
writeall(imds,'C:\output2\','FilenameSuffix','_image');

入力引数
入力データストア。次のデータストアを writeall の入力として使用できます。
'OutputFormat' または 'WriteFcn' の名前と値のペアを指定する場合は、writeall で次のデータストアも使用できます。
データを書き込むためのフォルダーの場所。文字ベクトルまたは string スカラーとして指定します。outputLocation には、絶対パスまたは相対パスを指定できます。
例: outputLocation = '../../dir/data'
例: outputLocation = "C:\Users\MyName\Desktop"
データ型: char | string
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: writeall(ds,outputLocation,'FolderLayout','flatten')
一般オプション
出力ファイル形式。'OutputFormat' と文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。
入力データストア ds のタイプに基づいて、出力ファイルとして次のいずれかの値を選択します。以下に示す表形式データストアには、任意の表形式の出力形式を選択できます。
入力データストア | 出力形式 |
|---|---|
TabulartextDatastore, SpreadsheetDatastore, ParquetDatastore | 'txt'、'csv'、'xlsx'、'xls'、'parquet'、'parq'、'dat'、または 'asc' |
ImageDatastore | 'png'、'jpg'、'jpeg'、'tif' または 'tiff' |
AudioDatastore | 'wav'、'ogg'、'flac'、'mp4' または 'm4a' |
FileDatastore, TransformedDatastore, CombinedDatastore, SequentialDatastore | すべての出力形式がサポートされます。 |
データ型: char | string
出力フォルダー内のファイルのレイアウト。'FolderLayout' と、'duplicate' または 'flatten' のいずれかで構成されるコンマ区切りのペアとして指定します。
'duplicate'— 関数writeallは、入力データの場所にあるフォルダー構造を指定された出力場所に複製します。入力データの場所には、入力データストアのFoldersプロパティが含まれます。'flatten'— 関数writeallは、入力のすべてのファイルを指定された出力フォルダーにサブフォルダーなしで書き込みます。
データ型: char | string
ファイル名の接頭辞。'FilenamePrefix' と文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。
関数 writeall は、指定された接頭辞を出力ファイル名に追加します。たとえば、次のコードは、データストアからのすべての出力ファイル名の先頭に今日の日付を追加します。
prefixText = string(datetime('today')) writeall(imds,'C:\myFolder','FilenamePrefix',prefixText);
データ型: char | string
ファイル名の接尾辞。'FilenameSuffix' と文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。
関数 writeall は、指定された接尾辞を出力ファイル名に追加します。たとえば、次のコードは、データストアからのすべての出力ファイル名の末尾に説明テキスト 'jpeg_70per' を追加します。
writeall(imds,'C:\myFolder','FilenameSuffix','jpeg_70per');
データ型: char | string
並列書き込みのインジケーター。'UseParallel' と、false または true (0 または 1) のいずれかで構成されるコンマ区切りのペアとして指定します。
既定では、writeall は書き込みを逐次実行します。UseParallel を true に設定すると、writeall は書き込み操作をグループに分け、次の条件が満たされる場合に各グループを並列実行します。
Parallel Computing Toolbox™ がインストールされている。
開いている並列プールが存在するか、[並列設定] でプールの自動作成が有効にされている。
そうでない場合、writeall は UseParallel の設定値に関係なく書き込みを逐次的に実行します。
writeall は、ローカル スレッドによる並列での書き込みをサポートしません。
メモ
並列書き込みは、CombinedDatastore オブジェクト、または CombinedDatastore に transform を適用して得られたデータストアではサポートされていません。
データ型: logical
カスタム書き込み関数。'WriteFcn' と関数ハンドルで構成されるコンマ区切りのペアとして指定します。指定した関数は出力ファイルの作成を受け持ちます。
writeall が出力形式を直接にサポートしていない場合でも、名前と値のペアの引数 'WriteFcn' を使用して、さまざまな形式でデータを書き込むことができます。
関数シグネチャ
カスタム書き込み関数は、少なくとも data、writeInfo、outputFormat の 3 つの入力引数を受け入れなければなりません。
function myWriteFcn(data,writeInfo,outputFormat)dataには、データストアに対して操作を行うreadメソッドの出力が含まれている。writeInfoは、次の表にリストされているフィールドをもつmatlab.io.datastore.WriteInfo型のオブジェクト。フィールド 説明 型 ReadInforeadメソッドの 2 番目の出力structSuggestedOutputName場所と命名の要件を満たす、完全修飾の、グローバルに一意なファイル名 stringLocationデータストアの書き込みに渡される位置引数 stringoutputFormatは、"txt"や"csv"などの書き込み先の出力形式。
関数の例
データストアの Parquet ファイルを書き込む書き込み関数は、次のとおりです。
function myParquetWriteFcn(data, writeInfo, outputFormat) if strcmp(outputFormat,"parquet") parquetwrite(writeInfo.SuggestedOutputName,data) end end
myParquetWriteFcn をデータストア ds 用の書き込み関数として呼び出すには、以下のコマンドを使用します。ds = parquetDatastore(location); outputLocation = 'C:/tmp/MyData'; writeall(ds,outputLocation,'WriteFcn',@myParquetWriteFcn);
データ型: function_handle
jpeg または jpg 出力のオプション
JPEG 圧縮ファイルの品質。'Quality' と [0,100] の範囲内のスカラーで構成されるコンマ区切りのペアとして指定します。0 は低品質で高圧縮、100 は高品質で低圧縮です。
例: 'Quality',25
wav または flac 出力のオプション
サンプルごとの出力ビット数。'BitsPerSample' と 8、16、24、32 または 64 で構成されるコンマ区切りのペアとして指定します。
FLAC ファイルの場合は、サンプルあたり 8、16 または 24 ビットのみがサポートされます。
例: 'BitsPerSample',32
mp4 または m4a 出力のオプション
圧縮オーディオ ファイルで使用される 1 秒あたりのキロビット数 (kbit/s)。'BitRate' と 64、96、128、160、192、256 または 320 で構成されるコンマ区切りのペアとして指定します。Windows® 7 以降で有効な値は、96、128、160、および 192 のみです。
一般に、BitRate の値が大きいほど、圧縮品質も高くなります。
例: 'BitRate',96
txt または csv 出力のオプション
変数名を列見出しとして書き込むためのインジケーター。'WriteVariableNames' と、true または false のいずれかで構成されるコンマ区切りのペアとして指定します。
インジケーター | 動作 |
|---|---|
| 書き込み関数は、変数名を出力の列見出しとして含めます。これは既定の動作です。 |
| 書き込み関数は出力に変数名を含めません。 |
フィールドの区切り記号。'Delimiter' と、次の指定子のいずれかを含む文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。
指定子 | フィールドの区切り記号 |
|---|---|
| コンマ。これは既定の動作です。 |
| スペース |
| タブ |
| セミコロン |
| 縦棒 |
'Delimiter' 名前と値のペアは区切り付きテキスト ファイルに対してのみ使用できます。
例: 'Delimiter','space'
データ型: char | string
ファイルに関連付けられた文字エンコード スキーム。'Encoding' と 'system' で構成されるコンマ区切りのペア、または次の表に示す値のいずれかのような標準の文字エンコード スキーム名として指定します。エンコードを指定しない場合、またはエンコードを 'system' として指定した場合は、書き込み関数はシステムの既定のエンコードを使用してファイルを書き込みます。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
例: 'UTF-8'
データ型: char | string
引用符付きテキスト書き込みのインジケーター。"minimal"、"all"、または "none" として指定します。
QuoteStringsが"minimal"の場合、この関数は区切り記号、行末、または二重引用符が含まれるすべての変数を二重引用符で囲みます。QuoteStringsが"all"の場合、この関数はすべてのテキスト変数、categorical 変数、datetime 変数、duration 変数を二重引用符で囲みます。QuoteStringsが"none"の場合、この関数は変数を二重引用符で囲みません。
名前と値の引数 QuoteStrings は、区切り形式のテキスト ファイルでのみ使用できます。
xls または xlsx 出力のオプション
書き込み先のワークシート。'Sheet' と、ワークシート名またはワークシート インデックスを示す正の整数を含む文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。ワークシート名にコロン (:) を含めることはできません。スプレッドシート ファイルのシートの名前を調べるには、sheets = sheetnames(filename) を使用します。詳細については、sheetnames を参照してください。
書き込み先のワークシートを、名前またはインデックスで指定します。
名前 — 指定したシート名がファイルに存在しない場合、書き込み関数がワークシート コレクションの最後に新しいシートを追加します。
インデックス — 指定したシート インデックスがワークシート数より大きい場合、書き込み関数が、ワークブック内のワークシートの数がシート インデックスと等しくなるまで空のシートを追加します。書き込み関数は新しいワークシートが追加されたことを示す警告も生成します。
'Sheet' 名前と値のペアはスプレッドシート ファイルでのみ使用できます。
例: 'Sheet',2
例: 'Sheet', 'MySheetName'
データ型: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
拡張機能
並列で実行するには、'UseParallel' オプションを true に設定します。
並列計算の一般情報の詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2020a で導入
参考
tabularTextDatastore | imageDatastore | spreadsheetDatastore | parquetDatastore | audioDatastore (Audio Toolbox) | write
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)