Main Content

assessVariableEqual

変数の存在と等価性について複数のチェックを実行

説明

assessVariableEqual(variableName,expectedValue) は、変数 variableName について、変数が存在するかどうか、データ型、サイズ、値が変数 expectedValue と同じであるかどうかを判定します。変数 expectedValue が数値である場合、等価であるかどうかは既定の許容誤差に基づいて判断されます。expectedValue が配列の場合、既定の許容誤差を配列の各要素に適用したうえで、等価であるかどうかが判断されます。

assessVariableEqual(variableName,expectedValue,Name,Value) では、追加オプションとして、名前と値の 1 つ以上のペアを引数に指定します。

評価が不合格だった場合、受講者は不正解に応じたテキストが記載されたフィードバック メッセージを受け取ります。また、名前と値のペアに 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.

入力引数

すべて折りたたむ

問題の解決に受講者が使用すると想定される変数名。char として指定します。

例: 'learnerValue'

解答で使用される変数の正解値。サポートされている任意のデータ型として指定します。サポートされているデータ型のみを含む構造体、テーブル、セルも許可されます。datetime、duration、calendarDuration データ型については、適用された書式設定がすべて無視されます。

模範解答を作成した場合、referenceVariables.variableName のように表記して、expectedValue を模範解答の変数にすることができます。たとえば、assessVariableEqual('X',referenceVariables.X) は、受講者の解答の X の値と、模範解答の X の値を比較します。

variableName という名前の変数が存在し、そのデータ型、サイズ、値が expectedValue と同じであった場合、評価は正解としてマークされます。評価が不合格だった場合、受講者はフィードバック メッセージを受け取ります。不正解の内容に応じてメッセージの内容も異なります。

条件メッセージ

提出された解答に変数が存在しない。

提出された解答には <varname> という変数がなければなりません。

変数のデータ型が正しくない。expectedValue のデータ型と一致していない。

変数 <varname> は次のデータ型でなければなりません: <correct_type>。現在は <incorrect_type> です。変数に値が代入されている場所を確認します。

変数のサイズが正しくない。expectedValue のサイズと一致しない。

変数 <varname> のサイズは次の値でなければなりません: <correct_size>
現在のサイズは <incorrect_size> です。変数に値が代入されている場所を確認します。

変数の値が正しくない。expectedValue と一致しない。

変数 <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' と数値配列で構成されるコンマ区切りのペアとして指定します。許容誤差は、同じデータ型の数値にのみ適用されます。値は、expectedValue と同じサイズのスカラーまたは配列にすることができます。

既定では、絶対許容誤差は 1e-4 です。絶対許容誤差を満たすには、次の条件が成り立つ必要があります。

abs(expected-actual) <= AbsoluteTolerance

許容誤差が指定されていない場合、または絶対許容誤差と相対許容誤差の両方が指定されている場合、テストは、絶対許容誤差の適用結果または相対許容誤差の適用結果のいずれかが等価チェックにパスした場合に合格となります。

絶対許容誤差のみを指定した場合、相対許容誤差は考慮されません。

例: 'AbsoluteTolerance',1.0

相対許容誤差。'RelativeTolerance' と数値配列で構成されるコンマ区切りのペアとして指定します。許容誤差は、同じデータ型の数値にのみ適用されます。値は、expectedValue と同じサイズのスカラーまたは配列にすることができます。

既定では、相対許容誤差は 0.001 です。相対許容誤差を満たすには、次の条件が成り立つ必要があります。

abs(expected-actual) <= RelativeTolerance.*abs(expected)

許容誤差が指定されていない場合、または絶対許容誤差と相対許容誤差の両方が指定されている場合、テストは、絶対許容誤差の適用結果または相対許容誤差の適用結果のいずれかが等価チェックにパスした場合に合格となります。

相対許容誤差のみを指定した場合、絶対許容誤差は考慮されません。

例: 'RelativeTolerance',0.05

評価が不正解としてマークされる場合に受講者に表示する追加のフィードバック。'Feedback' と文字配列で構成されるコンマ区切りのペアとして指定します。フィードバックを使用して、コードを修正するためのリソースを受講者に提供します。どの条件が満たされていないかを特定することはできませんが、対象範囲が扱われている特定のレッスンを受けるか資料を読むよう受講者に指示できます。

たとえば、評価に次のような Feedback の名前と値のペアが含まれているとします。

'Feedback','See class resource for assigning variable values.'
比較した変数について、受講者の提出した値に不正解があった場合、テストは不合格となり、受講者は以下のように、既定のフィードバックと共に追加のカスタム フィードバックを受け取ります。

Variable myVariable has an incorrect value.

See class resource for assigning variable values.

バージョン履歴

R2016a で導入