MATLAB から Excel へのデータのエクスポート

Ammar Ali 2023年6月20日
  1. MATLAB で writematrix() 関数を使用してデータを Excel ファイルにエクスポートする
  2. MATLAB で writecell() 関数を使用して Excel ファイルにデータをエクスポートする
  3. MATLAB で writetable() 関数を使用して Excel ファイルにデータをエクスポートする
MATLAB から Excel へのデータのエクスポート

このチュートリアルでは、MATLAB で writematrix()writetable()、および writecell() 関数を使用してデータを Excel ファイルにエクスポートする方法について説明します。

MATLAB で writematrix() 関数を使用してデータを Excel ファイルにエクスポートする

writematrix() 関数は、行列をファイルに書き込むために使用されます。 エクスポートしたいデータが行列に保存されている場合は、writematrix() 関数を使用できます。

writematrix() 関数には、以下に示す 3つの構文があります。

writematrix(data)
writematrix(data,file_name)
writematrix(___,Property_Name,Property_Value)

最初の構文は、指定された行列を拡張子 .txt を付けてテキスト ファイルに書き込み、カンマを区切り文字として使用して行内の要素を区切ります。 writematrix() 関数は、マトリックス変数の名前を出力ファイルの名前として使用し、関数がマトリックス名を使用できない場合、ファイルの名前として matrix.txt 名を使用します。

入力行列の各行は、出力ファイルの行になります。 ファイル名が既に存在する場合、関数はデータを上書きします。つまり、以前のデータは失われ、新しいデータに置き換えられます。

2 番目の構文は、ファイル名とその拡張子を設定するために使用されます。 出力ファイルには任意の名前を付けることができます。

.txt.dat、および .csv ファイル拡張子を使用して、区切り記号を追加できるテキスト ファイルにデータを保存できます。 .xls.xlsm、および .xlsx ファイル拡張子を使用して、Excel ファイルのスプレッドシートにデータを保存できます。

システムがファイル形式をサポートしている場合にのみ、.xlsb ファイル拡張子を使用してデータを Excel スプレッドシートに保存できます。 たとえば、行列をスプレッドシート ファイルに書き込んでみましょう。

以下のコードを参照してください。

clc
clear

X = magic(3)
writematrix(X,'X.xls')

最後の構文は、プロパティ名と値を使用して writematrix() 関数のプロパティを変更します。

FileType プロパティを使用して、ファイルの種類をテキストまたはスプレッドシートに設定できます。 DateLocale プロパティを使用して、日付の書き込みに使用するロケールを設定できます。

DateLocale プロパティは、入力マトリックスに DateTime 値が含まれている場合に役立ちます。これを使用して、ファイルに格納される日付の形式を指定できます。 この リンク をチェックして、日付値の保存に使用できるロケールでサポートされているすべての形式を確認してください。

WriteMode プロパティを使用して、データ書き込みモードを設定できます。 テキスト ファイルの場合、書き込みモードをデフォルト モードの overwrite から append に変更できます。これにより、ファイルに以前に保存されたデータに新しいデータが追加されます。

Excel ファイルの場合、デフォルト モードは inplace に設定されており、新しいデータ範囲のデータが置き換えられます。 たとえば、新しいデータが 5 行 5 列の場合、ファイルの 5 行 5 列のみが置き換えられ、残りのデータは同じままです。

overwritesheet モードを使用すると、指定されたシートがクリアされ、新しいデータがシートに書き込まれます。シートを指定しない場合は、最初のシートが使用されます。 指定したシートの末尾に新しいデータを追加する append モードを使用できます。シート番号を指定しない場合、最初のシートが使用されます。

replacefile モードを使用できます。このモードでは、以前のシートがすべて削除され、指定されたシートに新しいデータが書き込まれます。シートを指定しない場合は、最初のシートが使用されます。 Delimiter プロパティを使用して区切り記号を設定できます。区切り記号はコンマに設定され、スペース区切り文字には space、タブ区切り文字には tab; に設定されます。 セミコロン、および | 縦棒用。

QuoteStrings プロパティを使用して、引用されたテキストをファイルに書き込むために使用されるインジケーターを設定できます。 このプロパティの値は、minimalallnone のいずれかです。

minimal 値はデフォルト値で、二重引用符、区切り文字、および行末を含む変数を二重引用符で囲みます。 all 値は、すべての日付、カテゴリ、およびテキスト データを二重引用符で囲みます。

none 値は変数を囲みません。 Encoding プロパティを使用して、デフォルトで UTF-8 に設定されている文字のエンコードに使用されるスキームを変更できます。

Encoding プロパティを ISO-8859-1windows-1251、および windows-1252 に設定できます。 Sheet プロパティを使用して、データの書き込みに使用するシート番号または名前を指定できます。これは、文字ベクトルまたは正の整数にすることができます。

Range プロパティを使用して、新しいデータの書き込みに使用するスプレッドシートの範囲を設定できます。 範囲は、始点を指定する1枚のシートでも構いませんし、フォームシート5~シート10のような範囲でも構いません。

UseExcel プロパティを使用して、データを Excel ファイルに書き込むときに Excel ソフトウェアの起動を設定できます。 デフォルトでは、このプロパティは false に設定されています。これは、Excel ソフトウェアが起動しないことを意味しますが、Excel ソフトウェアを起動する true に設定することもできます。

たとえば、上記の例を繰り返して、上記のいくつかのプロパティを変更してみましょう。 以下のコードを参照してください。

clc
clear

X = magic(3)
writematrix(X,'X.xls','Sheet',3)
m = readmatrix('X.xls','Sheet',3)

出力:

X =

     8     1     6
     3     5     7
     4     9     2


m =

     8     1     6
     3     5     7
     4     9     2

上記のコードで、X は入力行列で、m は Excel ファイルに保存された行列です。 上記のコードでプロパティを変更するのと同じ方法で、他のプロパティを設定することもできます。

writematrix() 関数の詳細については、この リンク を確認してください。

MATLAB で writecell() 関数を使用して Excel ファイルにデータをエクスポートする

writecell() 関数は、セルをファイルに書き込むために使用されます。 エクスポートしたいデータがセルに保存されている場合、writecell() 関数を使用できます。

writecell() は writematrix() 関数と同じです。 唯一の違いは、writecell() 関数の入力がセルであり、writematrix() 関数の入力が行列であることです。

変更できるこれらの関数のプロパティも同じです。

たとえば、セルを作成して、それを Excel ファイルに書き込んでみましょう。 以下のコードを参照してください。

clc
clear

X = {1,2,3}
writecell(X,'Y.xls')
c = readcell('Y.xls')

出力:

X =

  1×3 cell array

    {[1]}    {[2]}    {[3]}


c =

  1×3 cell array

    {[1]}    {[2]}    {[3]}

上記の出力では、X は入力セルであり、c は保存したファイルからインポートしたセルです。 writecell() 関数の詳細については、この リンク を確認してください。

MATLAB で writetable() 関数を使用して Excel ファイルにデータをエクスポートする

writetable() 関数は、テーブルをファイルに書き込むために使用されます。 エクスポートしたいデータがテーブルに保存されている場合、writetable() 関数を使用できます。

writetable() 関数も writematrix() 関数と同じです。 唯一の違いは、writetable() 関数の入力がテーブルであり、writematrix() 関数の入力が行列であることです。 writetable() 関数には、変更可能な追加のプロパティがいくつかあります。

WriteRowNames プロパティを使用して、出力ファイルに行の名前を書き込むためのインジケーターを設定できます。

デフォルトでは、WriteRowNames プロパティは false に設定されています。つまり、テーブルの行名は出力ファイルに含まれませんが、行名を出力ファイルに書き込みたい場合は true に設定できます。 WriteVariableNames を使用して、テーブルの列見出しの名前を出力ファイルに書き込むために使用されるインジケーターを設定できます。

デフォルトでは、WriteVariableNames プロパティは false に設定されています。これは、テーブルの列見出しが出力ファイルに含まれないことを意味しますが、列見出しを出力ファイルに書き込みたい場合は true に設定できます。 たとえば、テーブルを作成して Excel ファイルに書き込んでみましょう。

以下のコードを参照してください。

clc
clear

Z = table([1;5],[10;15])
writetable(Z,'Z.xls')
m = readtable('Z.xls')

出力:

Z =

  2×2 table

    Var1    Var2
    ____    ____

     1       10
     5       15


m =

  2×2 table

    Var1    Var2
    ____    ____

     1       10
     5       15

上記の出力で、Z は入力テーブルで、m は保存したファイルからインポートしたテーブルです。 writetable() 関数の詳細については、この リンク を確認してください。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - MATLAB Excel