このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
assessVariableEqual
変数の存在と等価性について複数のチェックを実行
構文
説明
assessVariableEqual(
は、変数 variableName
,expectedValue
)variableName
について、変数が存在するかどうか、データ型、サイズ、値が変数 expectedValue
と同じであるかどうかを判定します。変数 expectedValue
が数値である場合、等価であるかどうかは既定の許容誤差に基づいて判断されます。expectedValue
が配列の場合、既定の許容誤差を配列の各要素に適用したうえで、等価であるかどうかが判断されます。
assessVariableEqual(
では、追加オプションとして、名前と値の 1 つ以上のペアを引数に指定します。variableName
,expectedValue
,Name,Value
)
解答が評価テストの条件に不合格となった場合、受講者は不正解に応じたテキストが記載されたフィードバック メッセージを受け取ります。また、名前と値のペアに Feedback
を使用して、カスタム フィードバックを追加することもできます。
例
既定の許容誤差をもつスカラー値の等価性の評価テスト
受講者の提出物である変数 avgX
と、模範解答の変数 avgX
を比較します。既定の許容誤差が自動的に適用されます。
assessVariableEqual('avgX',referenceVariables.avgX)
受講者の変数 avgX
が不正解である場合、解答は不合格となり、受講者は不正解の値について、既定のフィードバックを受け取ります。
Variable avgX has an incorrect value
.
相対許容誤差による配列値の等価性の評価テスト
受講者の提出物である配列 myArray=[1 1 4 4]
と、模範解答の配列 myArray=[1 2 3 4]
を比較します。配列内の値が相対許容誤差 0.03 (3%) の範囲内にある場合、受講者による提出が採用されます。
assessVariableEqual('myArray', referenceVariables.myArray,'RelativeTolerance',0.03)
この場合、期待値から実際の値を引いた値の絶対値 [0 1 1 0]
が、期待値と相対許容誤差の積に対応する絶対値 [0.03 0.06 0.09 0.12]
以下ではないため、許容誤差は "満たされません"。関数は、不正解の値に対する既定のフィードバック メッセージを返します。
Variable myArray has an incorrect value
.
絶対許容誤差による配列値の等価性の評価テスト
受講者の提出物である配列 myArray=[1 1 4 4]
と、模範解答の配列 myArray=[1 2 3 4]
を比較します。配列内の値が絶対許容誤差 1
の範囲内にある場合、受講者による提出が採用されます。
assessVariableEqual('myArray', referenceVariables.myArray,'AbsoluteTolerance',1)
この場合、期待値と実際の値の差に対応する絶対値がすべて、対応する絶対許容誤差以下であるため、許容誤差が満たされます。
追加のフィードバックによる変数の等価性の評価テスト
受講者の提出物である変数 avgX
と、模範解答の変数 avgX
を比較します。提出物の変数が不正解である場合、受講者をガイドするための追加のカスタム フィードバックを提供します。
assessVariableEqual('avgX',referenceVariables.avgX,'Feedback','Refer to the Week 2 handout on Averages.')
avgX
について、受講者の提出した値に不正解があった場合、解答は不合格となり、受講者は以下のように、既定のフィードバックと共に追加のカスタム フィードバックを受け取ります。
Variable avgX has an incorrect value
.
Refer to the Week 2 handout on Averages
.
入力引数
variableName
— 変数名
char
問題の解決に受講者が使用すると想定される変数名。char として指定します。
例: 'learnerValue'
expectedValue
— 解答の値
サポートされている任意のデータ型
解答で使用される変数の正解値。サポートされている任意のデータ型として指定します。サポートされているデータ型のみを含む構造体、テーブル、セルも許可されます。datetime、duration、calendarDuration データ型については、適用された書式設定がすべて無視されます。
模範解答を作成した場合、referenceVariables.
variableName
のように表記して、expectedValue
を模範解答の変数にすることができます。たとえば、assessVariableEqual('X',referenceVariables.X)
は、受講者の解答の X
の値と、模範解答の X
の値を比較します。
variableName
という名前の変数が存在し、そのデータ型、サイズ、値が expectedValue
と同じであった場合、解答は正解としてマークされます。解答が評価テストの条件に不合格となった場合、受講者はフィードバック メッセージを受け取ります。不正解の内容に応じてメッセージの内容も異なります。
条件 | メッセージ |
---|---|
提出された解答に変数が存在しない。 | 提出された解答には <varname> という変数がなければなりません。 |
変数のデータ型が正しくない。 | 変数 <varname> は次のデータ型でなければなりません: <correct_type> 。現在は <incorrect_type> です。変数に値が代入されている場所を確認します。 |
変数のサイズが正しくない。 | 変数 <varname> のサイズは次の値でなければなりません: <correct_size> 。現在のサイズは <incorrect_size> です。変数に値が代入されている場所を確認します。 |
変数の値が正しくない。 | 変数 <varname> の値が正しくありません。 |
メモ
受講者の解答内の変数と他の変数を比較する場合、それらの変数には異なる名前を指定しなければなりません。たとえば、受講者の解答である avgX
と模範解答の avgX
を比較する場合、模範解答の変数を referenceVariables.avgX
と記述します。
expectedValue
が模範解答にない変数である場合は、受講者の変数とは異なる変数名を使用して、自己に対して比較されないようにします。たとえば、次のようにします。
assessVariableEqual('avgX',xSol)
例: referenceVariables.xSol
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| categorical
| datetime
| duration
| calendarDuration
| sym
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して各名前と値を区切り、Name
を引用符で囲みます。
例: 'Feedback','Refer to Week 1 video on Finding the Quadratic Polynomial'
AbsoluteTolerance
— 絶対許容誤差
1e-4 (既定値) | 数値配列
絶対許容誤差。'AbsoluteTolerance' と数値配列で構成されるコンマ区切りのペアとして指定します。許容誤差は、同じデータ型の数値にのみ適用されます。値は、expectedValue
と同じサイズのスカラーまたは配列にすることができます。
既定では、絶対許容誤差は 1e-4
です。絶対許容誤差を満たすには、次の条件が成り立つ必要があります。
abs(expected-actual) <= AbsoluteTolerance
許容誤差が指定されていない場合、または絶対許容誤差と相対許容誤差の両方が指定されている場合、解答は、絶対許容誤差の適用結果または相対許容誤差の適用結果のいずれかが等価チェックにパスした場合に合格となります。
絶対許容誤差のみを指定した場合、相対許容誤差は考慮されません。
例: 'AbsoluteTolerance',1.0
RelativeTolerance
— 相対許容誤差
0.001 (既定値) | 数値配列
相対許容誤差。'RelativeTolerance' と数値配列で構成されるコンマ区切りのペアとして指定します。許容誤差は、同じデータ型の数値にのみ適用されます。値は、expectedValue
と同じサイズのスカラーまたは配列にすることができます。
既定では、相対許容誤差は 0.001
です。相対許容誤差を満たすには、次の条件が成り立つ必要があります。
abs(expected-actual) <= RelativeTolerance.*abs(expected)
許容誤差が指定されていない場合、または絶対許容誤差と相対許容誤差の両方が指定されている場合、解答は、絶対許容誤差の適用結果または相対許容誤差の適用結果のいずれかが等価チェックにパスした場合に合格となります。
相対許容誤差のみを指定した場合、絶対許容誤差は考慮されません。
例: 'RelativeTolerance',0.05
Feedback
— 受講者に表示する追加のフィードバック
char
解答が不正解としてマークされる場合に受講者に表示する追加のフィードバック。'Feedback' と文字配列で構成されるコンマ区切りのペアとして指定します。フィードバックを使用して、コードを修正するためのリソースを受講者に提供します。どの条件が満たされていないかを特定することはできませんが、対象範囲が扱われている特定のレッスンを受けるか資料を読むよう受講者に指示できます。
たとえば、評価テストに次のような Feedback
の名前と値のペアが含まれているとします。
'Feedback','See class resource for assigning variable values.'
Variable myVariable has an incorrect value
.
See class resource for assigning variable values
.
バージョン履歴
R2016a で導入
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)