Main Content

テキスト ファイルから行列への数値データのインポート

コンマ区切りのテキスト ファイルまたは区切られたテキスト ファイルとして保存されたファイルから、数値データを MATLAB® 配列としてインポートします。

コンマ区切りデータのインポート

この例では、テキスト ファイルからコンマ区切りの数値データをインポートする方法を説明します。サンプル ファイルを作成し、ファイル内のすべてのデータを読み取り、指定した位置から始まるサブセットのみを読み取ります。

コンマ区切りのデータを含む ph.dat という名前のサンプル ファイルを作成し、ファイルの内容を表示します。

rng('default')
A = 0.9*randi(99,[3 4]);
writematrix(A,'ph.dat','Delimiter',',')
type('ph.dat')
72.9,81.9,25.2,86.4
81,56.7,49.5,14.4
11.7,9,85.5,87.3

関数 readmatrix を使用してファイルを読み取ります。この関数は、ファイルのデータを含む 34 列の double 配列を返します。

M = readmatrix('ph.dat')
M = 3×4

   72.9000   81.9000   25.2000   86.4000
   81.0000   56.7000   49.5000   14.4000
   11.7000    9.0000   85.5000   87.3000

ファイルの 1 行 3 列目から始まるデータの矩形部分のみをインポートします。インポート オプション オブジェクトを作成し、SelectedVariableNames プロパティと DataLines プロパティを使用してインポートする列と行を指定します。次に、データの選択した部分をファイルからインポートします。

opts = detectImportOptions('ph.dat');
opts.SelectedVariableNames = {'Var3','Var4'};
opts.DataLines = [1 3];
readmatrix('ph.dat',opts)
ans = 3×2

   25.2000   86.4000
   49.5000   14.4000
   85.5000   87.3000

区切られた数値データのインポート

この例では、関数 writematrix を使用して、任意の 1 文字で区切られた数値データをインポートする方法を説明します。サンプルファイルを作成し、ファイル全体を読み取り、指定した位置からファイルのサブセットを読み取ります。

44 列の数値配列を含む num.txt という名前のタブ区切りファイルを作成し、ファイルの内容を表示します。

rng('default')
A = randi(99,[4,4]);
writematrix(A,'num.txt','Delimiter','\t')
type('num.txt')
81	63	95	95
90	10	96	49
13	28	16	80
91	55	97	15

ファイル全体を読み取ります。関数 readmatrix は、区切り記号を自動的に判定して 4 行 4 列の double 配列を返します。

M = readmatrix('num.txt')
M = 4×4

    81    63    95    95
    90    10    96    49
    13    28    16    80
    91    55    97    15

ファイルの 2 行 3 列目から始まるデータの矩形ブロックのみを読み取ります。インポート オプション オブジェクトを作成し、SelectedVariableNames プロパティと DataLines プロパティを使用してインポートする列と行を指定します。次に、データの選択した部分をファイルからインポートします。

opts = detectImportOptions('num.txt');
opts.SelectedVariableNames = {'Var3','Var4'};
opts.DataLines = [2 4];
readmatrix('num.txt',opts)
ans = 3×2

    96    49
    16    80
    97    15

参考

| | |

関連するトピック