メインコンテンツ

cell2struct

cell 配列を構造体配列に変換

    説明

    structArray = cell2struct(cellArray,fields) は、cell 配列に含まれる情報から、指定されたフィールド名を使用して、構造体配列を作成します。この関数は、cell 配列の各行を構造体の対応するフィールド名に割り当てます。

    structArray = cell2struct(cellArray,fields,dim) は、cell 配列の次元 dim に沿ってデータ セットを構造体の対応するフィールド名に割り当てます。たとえば、cell 配列の各列を対応するフィールド名に割り当てるには、dim に 2 を指定します。

    すべて折りたたむ

    5 日間の最高気温と最低気温を保存する cell 配列を作成します。

    T(1,:) = {"highs",[44,38,46,43,48]};
    T(2,:) = {"lows",[35,31,32,28,35]}
    T=2×2 cell array
        {["highs"]}    {[44 38 46 43 48]}
        {["lows" ]}    {[35 31 32 28 35]}
    
    

    cell 配列のデータの最初の列を使用して、構造体のフィールド名を定義します。

    fields = [T{:,1}]
    fields = 1×2 string
        "highs"    "lows"
    
    

    cell 配列の 2 列目の気温データを temps という名前の cell 配列にコピーします。

    temps = T(:,2)
    temps=2×1 cell array
        {[44 38 46 43 48]}
        {[35 31 32 28 35]}
    
    

    temps cell 配列とフィールド名を入力として指定して cell2struct を呼び出します。MATLAB は、temps のデータの各行を対応するフィールド名に割り当てます。

    Tstruct = cell2struct(temps,fields)
    Tstruct = struct with fields:
        highs: [44 38 46 43 48]
         lows: [35 31 32 28 35]
    
    

    構造体にインデックスを付けて、3 日目の最低気温を取得します。

    Tstruct.lows(3)
    ans = 
    32
    

    ID 番号、体温、血圧などの匿名患者の情報を含む cell 配列を作成します。

    patients(1,:) = {"A134",98.5,[124 85]};
    patients(2,:) = {"B267",99.1,[109 77]};
    patients(3,:) = {"C889",97.9,[120 81]}
    patients=3×3 cell array
        {["A134"]}    {[98.5000]}    {[124 85]}
        {["B267"]}    {[99.1000]}    {[109 77]}
        {["C889"]}    {[97.9000]}    {[120 81]}
    
    

    構造体に使用するフィールド名からなるベクトルを作成します。

    fields = ["PatientID","BodyTemp","BloodPressure"];

    cell 配列内のデータの各列を構造体内の対応するフィールド名に関連付けるために、次元を 2 に設定して cell2struct を呼び出します。

    patientStruct = cell2struct(patients,fields,2)
    patientStruct=3×1 struct array with fields:
        PatientID
        BodyTemp
        BloodPressure
    
    

    新しく作成された構造体配列内の患者 C889 の血圧を取得します。

    patientC889BP = patientStruct(3).BloodPressure
    patientC889BP = 1×2
    
       120    81
    
    

    入力引数

    すべて折りたたむ

    構造体配列に変換する cell 配列です。

    構造体配列のフィールドの名前。string 配列または文字ベクトルの cell 配列として指定します。フィールド名の数は、dim で指定された次元に沿った cell の数と一致する必要があります。

    cell 配列を分割する次元。正の整数として指定します。たとえば、既定値 1 では、cell 配列の各行が fields の対応するフィールド名に割り当てられます。2 を指定すると、cell 配列の各列が対応するフィールド名に割り当てられます。

    拡張機能

    すべて展開する

    バージョン履歴

    R2006a より前に導入