このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
MATLAB®は検证关键词呼び出すに,プロパティに対して定义された任意クラスとの検证検证しますますますます。ています.matlabははクラスとサイズの検证の要件を満たす,代入代入の右辺にクラスとサイズ変换を适适适适を
详细については,検証の順序およびプロパティの検証関数を参照してください。
プロパティ名に続いて,プロパティのサイズを行,列,追加次元として指定します。
classdef myclass属性prop(dim1,dim2,...)= defaultvalue结束结束
このクラスは位置
プロパティのサイズを1行3列として定義します。このプロパティに代入される値はそのサイズに準拠しているか,そのサイズに変換可能でなければなりません。
classdefValidateProps特性位置(1,3)结束结束
MATLABによって代入された暗黙的な既定値[0 0 0]
は指定サイズに準拠しています。
a = validateprops.
a =具有属性的validateprops:location:[0 0 0]
matlabはスカラーを位置
プロパティに代入するときにスカラー拡張を適用します。
一个= ValidateProps;a.Location = 1
a = ValidateProps with properties:
MATLABは列を行に変換してサイズ指定に一致させます。
坳= (1,1,1)
Col = 1 1 1
A.Location = Col.
a = ValidateProps with properties:
サイズ指定でのコロンは,対応する次元の長さに制限がないことを意味します。たとえば,このクラスの标签
プロパティにはあらゆる長さの値を代入できます。
classdefValidateProps特性标签(: 1)结束结束
一个= ValidateProps;A.Label ='点击开始'
a = ValidateProps属性:Label: 'Click to Start'
サイズの検証を定義するプロパティへの代入は,同等のインデックス付き配列の代入と同じルールに従います。多次元配列のインデックス付け動作の詳細については,基本的な演算で互換性のある配列サイズを参照してください。
プロパティのクラスを定義すると,コードのプロパティに代入された値をテストする必要性を減らすことができます。プロパティに代入される値は,指定されたクラスであるか,指定されたクラスに変換可能でなければなりません。
プロパティごとに1つのクラスのみを指定できます。mustBeNumeric
またはmustBeInteger
のような検証関数を使用して,プロパティをより広範なカテゴリのクラスに制限します。検証関数の詳細については,プロパティの検証関数を参照してください。
任意のMATLABクラス,またはMATLABでサポートされる,Java®クラスおよびCOMクラス以外の外部定義クラスを使用することができます。
プロパティ定義ブロックで,プロパティ名の後にクラス名とオプションのサイズ指定を入力します。
ClassName = defaultValue
既定値を指定しない场合,MATLABは指定クラスの空のオブジェクトをプロパティに代入します。サイズとクラスを定义すると,MATLABは,そのサイズとクラスの要件を満たすプロパティの既定値を作成しようとします。
Matlabは,引数なしでクラス呼び出し呼び出し,既既を作品成しますがが引なしれる场场サイズの返すコンストラクターをしの返すコンストラクター保持しなけれなりませんまたはなりんんまたはまたはまたはまたはまたはまたはまたはまたはまたは,サイズおよびクラスごとの既定値を参照してください。
propswithclass.
クラスは,クラス定义をもつ2つのプロパティを定义します。
数量
——値はクラス双
であるか,双
に変換可能でなければならない。
今天
——値はクラス字符
であるか,字符
に変换可でなければならなければならなければなら既定値は,关节日期
によって返される字符
ベクトルです。
classdefpropswithclass.特性数量双今天字符=日期结束结束
propswithclass.
クラスのオブジェクトを作成します。
p = propswithclass.
p = PropsWithClass with properties: Number: [] Today: '10- september 2016'
matlabはは合成するをプロパティのクラスに変换します。たとえば,今天
プロパティに配列约会时间
を代入します。
p.Today = [datetime (“现在”),约会时间('明天'));disp(类(p.Today))
ans =字符
约会时间
クラスには字符
コンバーターがあるため,今天
プロパティに配列约会时间
を代入できます。
クラスの検证を使使するに非适の値を代入と,エラーがが生物。
p.Number = datetime (“现在”);
设置类“propwithclass”的属性“Number”时出错:数据类型无效。值必须为double或可转换为double。
プロパティに代入された値を制御するクラスを定義することができます。列挙クラスを使用すると、名前のあいまい一致でプロパティ値を文字ベクトルまたは string スカラーに設定することができます。
〖图库“
classdef流量枚举低(10)中等(50)高(100)结束结束
泵
クラスには,現在の流量を1分あたりのガロンで返すメソッドがあります。速度
プロパティを流量
クラスとして定義します。
classdef泵特性速度流量结束方法功能getGPM (p)如果isempty(p.Speed) gpm = 0;其他的流量= int32 (p.Speed);结束流('流量为:%i GPM\n'、流量);结束结束结束
あいまいなテキストを使使使て速度
プロパティを设定できます。
P =泵;p.speed =.'M'
p =泵的性质:速度:介质
プロパティから数値を取得できます。
getGPM (p)
流量为:50 GPM
列挙クラスの详细については,列挙クラスの定義を参照してください。
matlabはは数ののクラスをサポートます(整数を参照)。ただし,プロパティを整数クラスに制限すると,整数のオーバーフローが発生することがあります。結果の値は整数の範囲の最大値または最小値で飽和することがあります。
整数のオーバーがが生物する料,プロパティに代入される値代入ステートメントの右辺からの値は异なる値能能能能ありありありあり
たとえば,プロパティ値をスカラーのuint8
に制限するとします。
classdefIntProperty特性价值(1,1) uint8结束结束
数量を价值
プロパティに代入すると,数値は実質的にuint8
にキャストされますが,範囲外の値としてのエラーにはなりません。
一个= IntProperty;a.Value = -10;disp (a.Value)
0
价值
プロパティへの代入は,配列のインデックス付き代入と同等です。代入値がuint8
で表せる値の範囲外にある場合,MATLABは値をuint8
で表せる最も近い値に設定します。
a = uint8.prement;a(1)= -10
A = uint8 0
整数のオーバーフローが発生する可能性を回避するには,整数クラスではなく意図する範囲に値を制限する検証関数の組み合わせを使用します。
classdefIntProperty特性价值(1,1){MustBeinteger,MustBenonnegative,...MOUNTBELESTHAN(价值,256)}结束结束
uint8
クラスによる代入値の変換がないため,検証関数が範囲外の値をキャッチし,適切なエラーをスローします。
一个= IntProperty;a.Value = -10;
设置类“IntProperty”的属性“Value”时出错:Value必须是非负的。
クラス定義で代入するプロパティの既定値は,指定された検証に準拠しなければなりません。
クラス定義で既定値を指定しない場合,MATLABは既定値を暗黙的に定義します。この表では,サイズとクラスでMATLABクラスの暗黙的な既定値が決定される方法を示します。
サイズ | クラス | MATLABで代入される暗黙的な既定値 |
---|---|---|
|
任意の数値 |
指定したクラスのゼロのm行n列の配列。 |
|
任意のクラス |
指定したクラスのm行0列または0行n列の配列。 |
|
|
空白のm行n列の文字配列。 |
|
|
各セルに0行0列の双が含まれるm行n列の细胞配列。 |
|
|
m行n列の |
|
|
m行n列の |
|
列挙クラス |
クラスで定義された最初の列挙メンバー。 |
|
|
実行時エラー——クラスで既定値を定義してください。 |
非ゼロおよび明示的なサイズの指定に対して暗黙的な既定値を決定するため,MATLABは既定のクラスコンストラクターを呼び出し,コンストラクターの呼び出しから返されるインスタンスを使用して指定されたサイズの配列を作成します。クラスで既定のコンストラクター(つまり,引数なしで呼び出されたコンストラクター)がサポートされない場合,MATLABは検証を含むクラスをインスタンス化するときにエラーをスローします。
指定されたサイズサイズにまたはまたは无制无制(:
)の次元がある場合,MATLABは,無制限次元をゼロに設定した空の配列の既定値を作成します。
異種混合配列の場合,MATLABはgetdefaultscalarement.
メソッドを呼び出して既定のオブジェクトを取得します。