所有值在不同的条目在一个结构的同一领域

3视图(30天)
想象我有结构的学生有一定的信息和他们的成绩为不同的模块,看起来像:
(1).grades学生。数学= 7;
(2).grades学生。数学= 9;
这个学生可能任意数量列表。有可能得到一个数组中的所有不同的数学成绩没有循环?
mathGrades = student.grades.math;
这似乎没有工作,给了我以下错误:
“中间点”。与2索引产生一个以逗号分隔值,但是它必须产生一个单一值,其次是后续索引操作。”

接受的答案

Vilem Frynta
Vilem Frynta 2023年4月21日
编辑:Vilem Frynta 2023年4月21日
尝试arrayfun(使用功能结构提取的值到数组)。
在你的数据:一个例子
%你的数据
(1).grades学生。数学= 7;
(2).grades学生。数学= 9;
(3).grades学生。数学= 6;
%使用arrayfun提取所有数学成绩为向量
x.grades mathGrades = arrayfun (@ (x)。数学,学生)
mathGrades = 1×3
7 9 6
希望我的回答是有用的。如果是,我很高兴如果你能接受我的答案。

答案(1)

Stephen23
Stephen23 2023年4月22日
编辑:Stephen23 2023年4月22日
“有可能得到数组中所有不同的数学成绩没有循环?”
当然可以。
简单和高效的MATLAB方法是使用逗号分隔列表:
(1).grades学生。数学= 7;
(2).grades学生。数学= 9;
(3).grades学生。数学= 6;
tmp = [student.grades];
= (tmp.math)
了= 1×3
7 9 6
避免ARRAYFUN缓慢。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!