“中间点索引产生一个以逗号分隔…”从嵌套误差防止提取值索引字段
651(30天)
显示旧的评论
下面的最低工作示例说明了Matlab中非常常见的情况,并显示错误当试图产生聚合值来自自己嵌套在其他索引字段索引字段。
a.students (1)。成绩= [7 8 9];
a.students (2)。成绩= (6 7 8);
max (a.students (:) .grades (:))%获得最高的分数,从所有的学生
%的错误:
%的中间点。与2索引产生一个以逗号分隔值,但是它必须产生一个单一值,其次是后续索引操作。
产生同样的错误,如果我只是试着打印出这些值,而不应用
马克斯
或任何其他功能,将在方括号表达式并不帮助:
[a.students (:) .grades (:))
唯一的出路就是继续使用for循环,使代码不雅且容易出错。这似乎也基本功能没有内置在Matlab解决方案。如何实现这将不胜感激任何建议。
1评论
Stephen23
2022年5月18日
编辑:Stephen23
2022年5月18日
代码不工作,因为您正试图应用一个索引到多个变量。MATLAB没有这样的一个命令,一个索引适用于所有成员的逗号分隔列表,也不可能在不久的将来(这将是一个重大的变化在逗号和列表是如何解释)。
a.students (1)。成绩= [7 8 9];
a.students (2)。成绩= (6 7 8);
a.students (:) .grades%这返回多个单独的变量,而不是一个数组。
a.students (:) .grades (:)%我们如何将一个索引应用到多个数组?
基本上你的代码做一些像这样的(伪代码):
[7 8 9]、[6 7 8](:)
结肠的期望指数对双方都适用的逗号分隔列表。