Compose-2025:OMLのセルと構造体
チュートリアルレベル:中級
このチュートリアルでは、以下の操作方法について説明します:
- セルを作成する。
- セルの要素を変更する。
- 構造体を作成する。
- 構造体を変更する。
- 構造体をセルに変換する。
- セルを構造体に変換する。
セルの作成
-
Editor windowで、新しいOMLスクリプトに次の行を入力します。
a = {[1,2;3,4],6-2i;'hello', [0,0,0]; false,{'I''m another cell'}}これにより、各セルに以下の値が保持されます。a (1,1):行列[1,2;3,4]a (1,2):複素数6-2ia (2,1):文字列'hello'a (2,2):ベクトル[0,0,0]a(3,1):ブール型のfalsea(3,2):1つの文字列要素‘I’m another cell’のみを保持した他のセル
-
実行をクリックすると次の出力が得られます。
セルの要素の変更
-
特定の要素を参照するには
a{x,y}を使用します。aはセルの名前、xは行、yは列を表します。A{2,1}の要素を変更するには、次を追加します。a{2,1} = [5,6;7,8] -
実行をクリックすると次の結果が得られます。
この例では、[2,1]の要素が文字列
'hello'から行列[5,6;7,8]に変更されたことがわかります。
構造体の作成
-
Editor windowで、新しいOMLスクリプトに次の内容を入力します。
student.name = ‘Bob’; student.age = 16; student.id = 8051または、struct()を使用して、同様の代入操作を実行することもできます。
student = struct(‘name’,’Bob’,’age’,16,’id’, 8051)これにより、年齢、ID、名前を3つのフィールドとする構造体が作成されます。これらのフィールドに相当する値は、それぞれ
16、8051、Bobです。 -
実行をクリックするとOML Commandウィンドウに次の出力が得られます。
Variable Browserで、studentの前に表示されている
+記号をクリックすると次のように構造体が展開され、そのフィールドと値を確認できます。
構造体の変更
-
Student構造体に新規フィールドとしてscoreを追加するには、次のコマンドを使用します。student.score = ‘A’または、次のように指定します。
setfield(student,’score’,’A’)どちらの方法でも次の結果が返されます。
-
既存の構造体からフィールドを削除するには、rmfield関数を使用する必要があります。例えば、
student構造体からageフィールドを削除するには、次のコマンドを使用します。rmfield(student,’age’)次の結果が返されます。
構造体からセルへの変換
struct2cellを呼び出すことで、構造体を容易にセルに変換できます。元の構造体のフィールドは、次のように数字のインデックスに変わります。student.name = 'Bob';
student.age = 18;
student.id = 8015
% transfer a struct to a cell
struct2cell(student)次の結果が返されます。
セルから構造体への変換
Cell = {'Bob','Lily','Emma';20,18,25;8051,8052,8053};
Fields = {'name','age','id'};
Struct = cell2struct(Cell,Fields)このスクリプトでは、名前、年齢、IDの各フィールド名を持つ構造体にセルを変換します。
Variable Browserで、構造体の前に表示されている+記号をクリックすると構造体が展開されます。Variable Browserの表示は次のようになります。