assessVariableEqual
针对变量存在情况和等式执行多项检查
语法
说明
assessVariableEqual(
确定变量 variableName
,expectedValue
)variableName
是否存在,是否与变量 expectedValue
具有相同的数据类型、相同的大小以及相同的值。如果变量 expectedValue
是数值,则使用默认容差来确定等式。如果 expectedValue
是数组,则通过对数组中的每个元素应用默认容差来确定等式。
assessVariableEqual(
使用由一个或多个 Name,Value 对组参量指定的额外选项。variableName
,expectedValue
,Name,Value
)
如果答案不满足评判测试中的条件,则学生会收到一条反馈消息,消息文本取决于不满足条件的情况。您还可以使用 Feedback
Name,Value 对组提供额外的自定义反馈。
示例
用于检查具有默认容差的标量值等式的评判测试
将学生提交变量 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
— 变量名称
字符
学生在求解习题时应该使用的变量名称,指定为字符。
示例: '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
— 向学生显示的额外反馈
字符
当答案标记为错误时向学生显示的额外反馈,指定为以逗号分隔的对组,该对组由 'Feedback' 和一个字符数组组成。使用反馈提供学生可用来更正其代码的资源。虽然您无法了解哪些条件未得到满足,但您可以引导学生参阅特定课程或涵盖该特定课程的阅读材料。
例如,假设评判测试包括 Feedback
Name,Value 对组:
'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)