matlab中用循环统计相同成绩学生人数
时间: 2023-07-24 22:14:22 浏览: 61
在MATLAB中,你可以使用循环来统计相同成绩的学生人数。以下是一个示例代码:
```matlab
% 假设这是学生的成绩向量
grades = [80, 90, 70, 60, 85, 95, 75, 65, 90, 80];
% 初始化变量
uniqueGrades = unique(grades); % 获取成绩的唯一值
numStudents = zeros(size(uniqueGrades)); % 初始化每个成绩的学生人数
% 统计相同成绩的学生人数
for i = 1:length(uniqueGrades)
grade = uniqueGrades(i);
numStudents(i) = sum(grades == grade);
end
% 输出每个成绩的学生人数
for i = 1:length(uniqueGrades)
fprintf('成绩 %d 的学生人数为:%d\n', uniqueGrades(i), numStudents(i));
end
```
输出结果为:
```
成绩 60 的学生人数为:1
成绩 65 的学生人数为:1
成绩 70 的学生人数为:1
成绩 75 的学生人数为:1
成绩 80 的学生人数为:2
成绩 85 的学生人数为:1
成绩 90 的学生人数为:2
成绩 95 的学生人数为:1
```
这段代码会使用循环统计每个成绩的学生人数并输出结果。你可以根据实际需要进行修改。
相关问题
matlab用循环结构统计成绩的最大值,最小值
好的,针对您的问题,我可以给您提供以下的 Matlab 代码实现:
假设我们有一个成绩数组 score,这里使用 for 循环结构来实现统计成绩的最大值和最小值:
```matlab
score = [78, 85, 92, 67, 88, 76, 89, 91, 83, 79];
n = length(score);
max_score = score(1);
min_score = score(1);
for i = 2:n
if score(i) > max_score
max_score = score(i);
end
if score(i) < min_score
min_score = score(i);
end
end
disp(['最高分是:', num2str(max_score)]);
disp(['最低分是:', num2str(min_score)]);
```
这里,我们先定义了一个成绩数组 score,然后使用 length 函数求出数组长度 n。接着,使用 for 循环结构遍历数组中的每一个元素,依次判断该元素是否大于最大值或小于最小值,并更新最大值和最小值。最后,使用 disp 函数输出最大值和最小值。
希望这个 Matlab 代码可以帮助到您。
matlab中用循环画一个圆
在 Matlab 中,可以使用 for 循环或 while 循环来画一个圆。
以下是使用 for 循环的代码:
```
r = 5; % 圆的半径
x0 = 0; % 圆心的 x 坐标
y0 = 0; % 圆心的 y 坐标
theta = 0:pi/50:2*pi; % 角度范围,每隔 pi/50 取一个点
x = x0 + r*cos(theta); % 计算每个点的 x 坐标
y = y0 + r*sin(theta); % 计算每个点的 y 坐标
plot(x, y); % 画圆
axis equal; % 设置 x, y 坐标轴的比例相等
```
以下是使用 while 循环的代码:
```
r = 5; % 圆的半径
x0 = 0; % 圆心的 x 坐标
y0 = 0; % 圆心的 y 坐标
theta = 0; % 初始角度为 0
dtheta = pi/50; % 每次增加的角度
x = [];
y = [];
while theta <= 2*pi % 当角度小于 2*pi 时继续循环
x(end+1) = x0 + r*cos(theta); % 计算每个点的 x 坐标并添加到数组 x 中
y(end+1) = y0 + r*sin(theta); % 计算每个点的 y 坐标并添加到数组 y 中
theta = theta + dtheta; % 增加角度
end
plot(x, y); % 画圆
axis equal; % 设置 x, y 坐标轴的比例相等
```
这两段代码的效果是一样的,都可以画出半径为5的圆。