構造体とフィールドへの値の代入
コード生成において、構造体、サブ構造体またはフィールドに値を代入する際に、以下のガイドラインを使用してください。
フィールド プロパティは、構造体から構造体への代入において一貫性がなければならない
この場合 | 操作: |
---|---|
ある構造体を別の構造体に代入する | それぞれの構造体は、フィールドの数、型、サイズを同じに定義する |
ある構造体を別の構造体のサブ構造体に代入する (またはその逆) | 構造体は、フィールドの数、型、サイズをサブ構造体と同じに定義する |
ある構造体の要素を別の構造体の要素に代入する | 要素は同じデータ型とサイズであること。 |
定数フィールドをもつ構造体には制御フロー構造内でフィールド値を代入しない
次のコードでは、コード ジェネレーターは構造体フィールド s.a
および s.b
が定数であると認識します。
function y = mystruct()
s.a = 3;
s.b = 5;
y = zeros(s.a,s.b);
構造体のフィールドが制御フロー構造内で代入された場合、コード ジェネレーターは s.a
および s.b
が定数であると認識しません。以下のコードについて考えます。
function y = mystruct(x) s.a = 3; if x > 1 s.b = 4; else s.b = 5; end y = zeros(s.a,s.b);
可変サイズが有効の場合、y
は可変サイズの配列として扱われます。可変サイズが無効の場合、y
について、コード ジェネレーターはエラーを報告します。
mxArrays
を構造体の要素に代入することはできません。mxArrays
を既知の型に変換してからコード生成を行ってください (mxArrays の利用を参照)。
グローバル構造体変数にハンドル クラスまたはスパース配列を代入しない
グローバル構造体変数には、ハンドル オブジェクトまたはスパース配列を含めることができません。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)