matlab - 提交给 Matlab Grader 时变量的值“不正确”
问题描述
我正在为我的 Matlab 作业而苦苦挣扎:
编写一个脚本来执行以下操作:
生成一个大小为 8 x 25 的称为等级的矩阵,其中包含 1 到 6 范围内的 double 类型的随机数。
计算矩阵行的平均值 (
mrow
)、矩阵列的平均值 ( ) 和矩阵等级mcol
的整体平均值 (mall
)。将矩阵复制
grades
到一个新变量,在其中将第 5 行和第 20 到 23 列中的元素替换为 NaN。再次计算该矩阵的总体均值 (mall_2
),即剩余值的均值。
我完成了任务 2-5,但是,任务 1 不正确。我不确定我做错了什么。我认为它与数字类型(双精度)有关,但我无法转换它。
我们必须将作业提交到在线工具“Matlab Grader”。系统说:
随机数矩阵:变量等级的值不正确。
这是我的代码:
% Generate matrix 'grades' with random numbers in the range 1 to 6
a = 1;
b = 6;
grades = (b-a).*rand(8,25) + a;
% calculate mean values 'mrow', 'mcol', 'mall'
mrow = mean(grades,2)
mcol = mean(grades,1)
mall = mean(grades(:))
% Replace elements with NaN
grades(5,20:23) = NaN
%Calculate mean of elements omitting NaN
mall_2 = mean(grades(:),'omitnan')
解决方案
我假设您的作业验证系统正在检查变量中的所有内容是否都是grades
1 到 6 范围内的(随机)数字,如问题 1 所要求的那样。
但是,在计算结束时,变量中还有 3 个NaN
值grades
,因为您错过了问题 3 的这一步:
将矩阵复制
grades
到新变量
相反,您覆盖了grades
.
如果你这样做:
grades_mod = grades;
grades_mod(5,20:23) = NaN;
mall_2 = mean(grades_mod(:),'omitnan');
然后grades
将保留其原始值(无 NaN),您可以计算mall_2
.
推荐阅读
- sql - SQL Server int 长度属性
- apache-spark - Spark Streaming vs Structured Streaming 性能基准
- oracle - ORA-00932: 不一致的数据类型: 预期 - 获得不同模式的 CLOB
- c# - WKWebview 不加载网站字体
- javascript - 发送返回 500 "{}" 的 multipart/form-data 表单
- templates - Chef Opscode 使用库文件中的属性值
- android - 每次我回到我的活动时都会丢失数据?
- ms-access - 访问 VBA:选择报告
- config - 使用 PHP 动态写入配置文件
- ios - 通过 Firebase 函数发送的 Swift 中的加密推送通知