用matlab写一个小程序

% t4.m参考程序(考虑到很多人的最高和最低条件):

%请理解!!!能补最好!

函数t4()

色度控制中心

% -开始初始化

Row=input('输入学生人数:');

Col=input('输入课程数:');

score=fix(rand(row,col)* 49)+49;

xh0 = 1:row;

kch 0 = 1:col;

for ii=1:row

zcj_pre(ii)=sum_(score(ii,);

结束

原始报表;:')

disp([xh0 ' score zcj _ pre ']);

% -结束初始化

%拨打同济1

[c_max,index_max,c_min,index_min,c _ ave]= tonji 1(分数);

Disp('平均分数统计:')

Fprintf('课程平均值\ n ');

%以上述格式输出

disp([kch0 ',round(c _ ave)']);

Disp('课程最高分统计:')

Fprintf('课程的最高学号\ n ');

对于jj=1:col

fprintf(' %d %d ',kch0(jj),c_max(jj))

对于kk = 1:length(index _ max { jj })

fprintf('%d ',index _ max { jj }(kk));

结束

fprintf(' \ n ');

结束

Disp('课程最低分数统计:')

Fprintf('课程的最小学生人数\ n ');

%以上述格式输出

对于jj=1:col

fprintf(' %d %d ',kch0(jj),c_min(jj))

对于kk = 1:length(index _ min { jj })

fprintf('%d ',index _ min { jj }(kk));

结束

fprintf(' \ n ');

结束

%致电同济23

[s_max,index_max,s_min,index_min,px]=tongji23(分数);

Disp('学生总成绩最高分统计:')

Fprintf('最高总学术数\ n ');

%以上述格式输出

fprintf('%d ',s _ max);

disp(index _ max);

Disp('学生总成绩最低分统计:')

Fprintf('最低总学术数\ n ');

%以上述格式输出

fprintf('%d ',s _ min);

disp(index _ min);

disp('-');

Fprintf('降序总分:\ n ');

Fprintf('总等级数\ n ');

%以上述格式输出

disp(px);

%存入zcj

zcj=px(:,1);%zcj在主函数空间中

%存入xh

xh=px(:,2);%xh也在主函数空间。

function [c_max,index_max,c_min,index_min,c _ ave]= tonji 1(分数)

% c_max course col*1向量的最高分

% index_max课程的最高分对应单元格col*1。

% c_min课程的最低分数col*1向量

% index_min课程的最低分对应单元格col*1。

% c_ave球场平均col*1矢量

[row,col]= size(score);

对于jj=1:col

[c_max(jj),index_max{jj}]=max_(score(:,jj));

[c_min(jj),index_min{jj}]=min_(score(:,jj));

c_ave(jj)=ave_(score(:,jj));

结束

函数[s_max,index_max,s_min,index_min,px]=tongji23(分数)

% s_max col课程的最高总分。

% index_max col课程最高总分对应学号。

% s_min col课程的最低总分。

% index_min col课程的最低总分对应于学生编号。

矩阵行* 2按降序排列% px [COL课程总成绩编号]

[row,col]= size(score);

for ii=1:row

zcj(ii)=sum_(score(ii,);

结束

[s_max,index _ max]= max _(zcj);

[s_min,index _ min]= min _(zcj);

px = sort _ down(zcj);

函数y = sum _ %自制求和函数,其中x为向量。

y = 0;

对于ii=1:长度(x)

y = y+x(ii);

结束

函数y = ave _ %自行设计的平均函数,其中x为向量。

y = sum _/length(x);

Function [x_max,index]= max _ %用户定义函数

% x_max:向量x中的最大值。

% index:向量X中最大值对应的下标向量(可能有多个)。

index =[];

x _ max = x(1);

对于ii=1:长度(x)

如果x(ii)>=x_max

x _ max = x(ii);

结束

结束

对于ii=1:长度(x)

如果x(ii)==x_max

index=[index,ii];

结束

结束

Function [x_min,index]= min _ %用户定义函数

% x_min:向量x中的最小值。

% index:向量X中最小值对应的下标向量(可能有多个)。

index =[];

x _ min = x(1);

对于ii=1:长度(x)

如果x(ii)& lt;=x_min

x _ min = x(ii);

结束

结束

对于ii=1:长度(x)

如果x(ii)==x_min

index=[index,ii];

结束

结束

函数px=sort_down(x)

% px=[y_down索引]

% y_down:x行按降序排列

% index:x排序的行标签序列

[row,col]= size(x);

如果row = = 1 & amp;& ampCol~=1%保证X是列向量。

x = x’;

结束

row =长度(x);

index = 1:row;

px=[x,index '];%构成了预排序px。

%采用选择排序2:

对于ii=1:行-1

kk = ii

对于jj=ii+1:row

如果px(jj,1)>px(kk,1)

kk = jj

结束

结束

如果kk~=ii

temp=px(kk,);

px(kk,)=px(ii,);

px(ii,)= temp

结束

结束