このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
codegen
を使用してコードを生成する場合,値クラスオブジェクトである入力の型を指定するために,arg游戏
オプションを使用してオブジェクト例を指定できます。
値クラスを定義します。たとえば,クラスmyRectangle
を定義します。
classdefmyRectangle属性长度;宽度;结束方法函数obj = myRectangle (l, w)如果Nargin > 0 obj。长度= l;obj。宽度= w;结束结束函数Area = calcalarea (obj)长度* obj.width;结束结束结束
値クラスのオブジェクトを入力として取得する関数を定義します。次に例を示します。
函数z = getarea(右)% # codegenz =钙质海绵纲(r);结束
クラスのオブジェクトを作成します。
rect_obj = myRectangle(4、5)
rect_obj = myRectangle with properties: length: 4 width: 5
arg游戏
オプションを使用して,オブジェクト例をcodegen
に渡します。
codegengetareaarg游戏{rect_obj}报告
コード生成レポートで,r
にオブジェクト例rect_object
と同じプロパティ长度
および宽度
があることがわかります。プロパティのサイズと型は,オブジェクト例rect_object
と同じです。
オブジェクト例を指定する代わりに,値クラスのオブジェクトの型を作成し,arg游戏
オプションを使用してその型を指定することができます。
クラスのオブジェクトを作成します。
rect_obj = myRectangle(4、5)
rect_obj = myRectangle with properties: length: 4 width: 5
プロパティの型がrect_obj
と同じmyRectangle
のオブジェクトに対する型を作成するには,coder.typeof
を使用します。
coder.typeof
は,クラスに対する型を定義する编码器。ClassType
オブジェクトを作成します。
t = coder.typeof (rect_obj)
t =编码器。ClassType1×1 myRectangle length: 1×1 double width : 1×1 double
arg游戏
オプションを使用して,型をcodegen
に渡します。
codegengetareaarg游戏{t}报告
値クラスの型を作成した後,プロパティの型を変更できます。たとえば,t
のプロパティを16ビット整数にするには,次を行います。
t.Properties.length = code .typeof(int16(1))
プロパティを追加または削除することもできます。たとえば,newprop
プロパティを追加する方法は以下のとおりです。
t.Properties.newprop = coder.typeof (int16 (1))
编码器。ClassType
オブジェクトとクラス定義ファイル間の整合性コードを生成するとき,codegen
に渡される编码器。ClassType
オブジェクトのプロパティはクラス定義ファイル内のプロパティと一致していなければなりません。コードで使用されていないプロパティがクラス定義ファイルに存在する場合,编码器。ClassType
オブジェクトはこれらのプロパティを含める必要はありません。コードジェネレーターは,使用されていないプロパティを削除します。
オブジェクトであるエントリポイント関数の入力には次のような制限事項があります。
エントリポイント関数の入力であるオブジェクトは,値クラスのオブジェクトでなければなりません。ハンドルクラスのオブジェクトをエントリポイント関数の入力にすることはできません。そのため,ハンドルクラスを含む値クラスをエントリポイント関数の入力にすることはできません。
オブジェクトをグローバル変数にすることはできません。
オブジェクトに重複するプロパティ名がある場合は,そのオブジェクトを编码器。常数
で使用できません。次の場合,サブクラスのオブジェクトでプロパティ名が重複します。
サブクラスに,スーパークラスのプロパティと同じ名前のプロパティがある。
サブクラスが,プロパティに同じ名前を使用する複数のスーパークラスから派生している。
MATLAB®で重複するプロパティ名が許可される場合の詳細については,複数のクラスからのサブクラスの作成を参照してください。