cell 配列と構造体配列
この例では、セルと構造体の配列を比較し、各タイプの配列でデータを格納する方法を示します。セルと構造体配列の両方を使用して、さまざまな型とサイズのデータを格納できます。
構造体配列
構造体配列では、名前別にアクセスするフィールド内にデータが含まれます。
たとえば、構造体配列に患者の記録を格納します。
patient(1).name = 'John Doe'; patient(1).billing = 127.00; patient(1).test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205]; patient(2).name = 'Ann Lane'; patient(2).billing = 28.50; patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169]; patient
patient=1×2 struct array with fields:
name
billing
test
患者ごとに検査結果の棒グラフを作成します。
numPatients = numel(patient); for p = 1:numPatients figure bar(patient(p).test) title(patient(p).name) xlabel('Test') ylabel('Result') end
cell 配列
cell 配列では数値インデックスでアクセスするセルにデータが含まれます。cell 配列の共通の機能には、複数のテキストの格納やスプレッドシートからの異種混合データの格納などがあります。
たとえば、時間経過にもとづく 3 都市の気温データを cell 配列内に格納します。
temperature(1,:) = {'2009-12-31', [45, 49, 0]}; temperature(2,:) = {'2010-04-03', [54, 68, 21]}; temperature(3,:) = {'2010-06-20', [72, 85, 53]}; temperature(4,:) = {'2010-09-15', [63, 81, 56]}; temperature(5,:) = {'2010-12-09', [38, 54, 18]}; temperature
temperature=5×2 cell array
{'2009-12-31'} {[ 45 49 0]}
{'2010-04-03'} {[54 68 21]}
{'2010-06-20'} {[72 85 53]}
{'2010-09-15'} {[63 81 56]}
{'2010-12-09'} {[38 54 18]}
日付別に都市ごとの気温をプロットします。
allTemps = cell2mat(temperature(:,2)); dates = datetime(temperature(:,1)); plot(dates,allTemps) title('Temperature Trends for Different Locations') xlabel('Date') ylabel('Degrees (Fahrenheit)')
その他のコンテナー配列
一般的に、struct と cell 配列は異なるタイプのデータを格納するために使用されるコンテナーです。テーブルは、異なるタイプの列方向データや表形式データを格納するのに便利です。代わりに、Map コンテナーを使用するか、独自のクラスを作成することもできます。
参考
cell
| cell2mat
| containers.Map
| table
| struct
| datetime
| plot