スプレッドシート データを配列または個々の変数に読み取る
MATLAB® でスプレッドシート データを表現する最善の方法は table であり、数値とテキストが混在するデータを格納することができます。しかし、場合によってはスプレッドシート データを行列、cell 配列、または個別の変数としてインポートする必要があります。MATLAB® ワークスペースで必要とされるデータとデータ型に基づき、次の関数のいずれかを使用します。
readmatrix— 同種の数値データまたはテキスト データを行列としてインポートします。readcell— 数値とテキストの混在するデータを cell 配列としてインポートします。readvars— スプレッドシートの列を個別の変数としてインポートします。
行列へのスプレッドシート データの読み取り
basic_matrix.xls の数値データを行列にインポートします。
M = readmatrix('basic_matrix.xls')M = 5×4
6 8 3 1
5 4 7 3
1 6 7 10
4 2 8 2
2 7 5 9
Sheet パラメーターと Range パラメーターを指定することで、スプレッドシートからインポートするデータを選択することもできます。たとえば、Sheet パラメーターを 'Sheet1' に、Range パラメーターを 'B1:D3' に指定します。関数 readmatrix は、'Sheet1' という名前のシートの第 1 行第 2 列の要素から始まる、3 行 3 列のデータのサブセットを読み取ります。
M = readmatrix('basic_matrix.xls','Sheet','Sheet1','Range','B1:D3')
M = 3×3
8 3 1
4 7 3
6 7 10
cell 配列へのスプレッドシート データの読み取り
表形式の混合データを airlinesmall_subset.xlsx から cell 配列にインポートします。
C = readcell('airlinesmall_subset.xlsx'); whos C
Name Size Bytes Class Attributes C 1339x29 4898586 cell
Sheet パラメーターと Range パラメーターを指定することで、スプレッドシートからインポートするデータを選択することもできます。たとえば、Sheet パラメーターを '2007' に、Range パラメーターを 'G2:I11' に指定します。関数 readcell は、'2007' という名前のワークシートから、列 7、8、9 にある変数の 10 行のデータをインポートします。
subC = readcell('airlinesmall_subset.xlsx','Sheet','2007','Range','G2:I11')
subC=10×3 cell array
{[ 935]} {[ 935]} {'WN'}
{[1041]} {[1040]} {'WN'}
{[1430]} {[1500]} {'WN'}
{[ 940]} {[ 950]} {'WN'}
{[1515]} {[1515]} {'WN'}
{[2042]} {[2035]} {'WN'}
{[2116]} {[2130]} {'WN'}
{[1604]} {[1605]} {'WN'}
{[1258]} {[1230]} {'WN'}
{[1134]} {[1145]} {'WN'}
スプレッドシート データ列を個別の変数として読み取る
airlinesmall_subset.xlsx の最初の 3 列を、個別のワークスペース変数としてインポートします。
[Year,Month,DayOfMonth] = readvars('airlinesmall_subset.xlsx'); whos Year Month DayOfMonth
Name Size Bytes Class Attributes DayOfMonth 1338x1 10704 double Month 1338x1 10704 double Year 1338x1 10704 double
Sheet パラメーターと Range パラメーターを指定することで、どのサブセットをスプレッドシートからインポートするかを選択することもできます。たとえば、'2004' という名前のワークシートから列 DayOfMonth の 10 行をインポートします。Range パラメーターを使用して、列と行数を指定します。
DayOfMonth = readvars('airlinesmall_subset.xlsx','Sheet','2004','Range','C2:C11')
DayOfMonth = 10×1
26
10
21
24
20
20
1
2
30
11
参考
readtable | readmatrix | readcell | readvars