对于基于函数的解决方案,可以编写MAT金宝搏官方网站LAB®使用内置函数检查变量相等性和关键字或函数是否存在的代码:
assessVariableEqual
-检查学习者解中的变量是否等于容忍度内的指定值。
assessFunctionPresence
-检查学习者解决方案中是否存在特定函数或关键字。
assessFunctionAbsence
-检查某些函数或关键字没有出现在学习者的解决方案中。
您为基于函数的解决方案编写的每个评估通常包括对学习者解决方案的调用。您可以向函数提供输入并计算任何返回值。您还可以调用参考解决方案来比较其输出与学习解决方案输出。
每个评估都是顺序进行的,并且独立于其他评估。如果一个评估失败,后续的评估仍然运行。
在一次评估中创建的变量在下一次评估中不可用。定义每次评估中所需的所有变量。
如果代码结束时没有错误,则评估结果显示通过状态。否则,评估结果将显示失败状态。
如果测试是预测试,学习者可以通过单击测试名称左侧的箭头查看有关评估测试的信息,而不管测试是否通过。
当你使用assessVariableEqual
对于基于函数的问题,对调用学习函数时创建的任何输出变量使用与在学习函数声明中使用相同的名称。默认反馈消息引用在评估中创建的输出变量名,如果输出变量与声明不匹配,学习者可能无法识别输出变量。
为了评估学习者作为解决方案提交的函数,每次评估都调用学习者解决方案。
一个例子评估triangleArea
函数可以是:
b = 5;h = 3;面积= triangleArea (b、h);areaCorrect = 7.5;assessVariableEqual (“区域”areaCorrect)
当学习者单击Submit时,该评估调用学习者版本的triangleArea
.
要比较学习解决方案和参考解决方案,调用两个函数。
要调用学习者的解决方案,使用语法myFunction
.
要调用引用解决方案,请使用以下语法参考。
myFunction
.
在这两种情况下,替换myFunction
使用您在解决方案模板中使用的函数的名称。
一个例子评估triangleArea
函数可以是:
b = 5;h = 3;面积= triangleArea (b、h);areaCorrect = reference.triangleArea (b、h);assessVariableEqual (“区域”areaCorrect)
学习者必须编写一个调用的函数flipIt
这将反转输入向量,反转向量中值的顺序。学习者不应该使用翻转
函数。
参考解决方案
函数w = flipIt(v) w = v(end:-1:1);结束
评估测试。调用带输入向量的学习者解[1 2 3 4]。测试学习者解与参考解是否匹配,避免使用翻转
:
V = [1 2 3 4];w_correct = reference.flipIt(v);assessVariableEqual(‘w’,w_correct);assessFunctionAbsence(“翻转”,“文件名”、“flipIt.m”)
再次调用学习者解,这次使用输入向量[4]:
v = [4];w = flipIt (v);assessVariableEqual(‘w’,w_correct);assessFunctionAbsence(“翻转”,“文件名”、“flipIt.m”)