当前位置:首页>开发>正文

用matlab写一个小程序 一个MATLAB小程序

2023-05-23 19:00:54 互联网 未知 开发

 用matlab写一个小程序 一个MATLAB小程序

用matlab写一个小程序

% t4.m参考程序(考虑了多人最高、最低等情况):
% 请看懂!!!能编最好!

function t4()
clc
%---------start 初始化---------------
row=input(输入学生人数:)
col=input(输入课程数目:)
score=fix(rand(row,col)*49) 49
xh0=1:row
kch0=1:col
for ii=1:row
zcj_pre(ii)=sum_(score(ii,:))
end
disp(原始成绩表<第一列为学号、中间依次为各科成绩、最后一列为学生总成绩>:)
disp([xh0 score zcj_pre])
%---------end 初始化--------------------
% 调用tongji[c_max,index_max,c_min,index_min,c_ave]=tongji1(score)
disp(平均分统计:)
fprintf( 课程 平均 )
% 按以上格式输出
disp([kch0,round(c_ave)])
disp(课程最高分统计:)
fprintf( 课程 最高 学号 )
for jj=1:col
fprintf( %d %d ,kch0(jj),c_max(jj))
for kk=1:length(index_max{jj})
fprintf(%d ,index_max{jj}(kk))
end
fprintf( )
end
disp(课程最低分统计:)
fprintf( 课程 最低 学号 )
% 按以上格式输出
for jj=1:col
fprintf( %d %d ,kch0(jj),c_min(jj))
for kk=1:length(index_min{jj})
fprintf(%d ,index_min{jj}(kk))
end
fprintf( )
end

% 调用tongji2[s_max,index_max,s_min,index_min,px]=tongji23(score)
disp(学生总成绩最高分统计:)
fprintf(最高总分 学号 )
% 按以上格式输出
fprintf(%d ,s_max)
disp(index_max)

disp(学生总成绩最低分统计:)
fprintf(最低总分 学号 )
% 按以上格式输出
fprintf(%d ,s_min)
disp(index_min)
disp(--------------------------------)
fprintf(总成绩排降序: )
fprintf(总成绩 学号 )
% 按以上格式输出
disp(px)
% 存入zcj
zcj=px(:,1)%zcj在主函数空间
% 存入xh
xh=px(:,2)%xh也在主函数空间

function [c_max,index_max,c_min,index_min,c_ave]=tongji1(score)
% c_max课程最高分col*1向量
% index_max课程最高分对应学号col*1元胞
% c_min课程最低分col*1向量
% index_min课程最低分对应学号col*1元胞
% c_ave课程平均成绩col*1向量
[row,col]=size(score)
for 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))
end

function [s_max,index_max,s_min,index_min,px]=tongji23(score)
% s_max col门课程总成绩最高分
% index_max col门课程总成绩最高分对应学号
% s_min col门课程总成绩最低分
% index_min col门课程总成绩最低分对应学号
% px 排降序后的矩阵row*2 [col门课程总成绩 学号]
[row,col]=size(score)
for ii=1:row
zcj(ii)=sum_(score(ii,:))
end
[s_max,index_max]=max_(zcj)
[s_min,index_min]=min_(zcj)
px=sort_down(zcj)

function y=sum_(x)%自编求和函数,x为向量
y=0
for ii=1:length(x)
y=y x(ii)
end

function y=ave_(x)%自编求平均值函数,x为向量
y=sum_(x)/length(x)

function [x_max,index]=max_(x)%自定义函数
% x_max:向量x中的最大值
% index:向量x中的最大值对应的下标向量(有可能多个)
index=[]
x_max=x(1)
for ii=1:length(x)
if x(ii)>=x_max
x_max=x(ii)
end
end
for ii=1:length(x)
if x(ii)==x_max
index=[index,ii]
end
end

function [x_min,index]=min_(x)%自定义函数
% x_min:向量x中的最小值
% index:向量x中的最小值对应的下标向量(有可能多个)
index=[]
x_min=x(1)
for ii=1:length(x)
if x(ii)<=x_min
x_min=x(ii)
end
end
for ii=1:length(x)
if x(ii)==x_min
index=[index,ii]
end
end

function px=sort_down(x)
% px=[y_down index]
% y_down:x排降序
% index:x排序后的行标序列
[row,col]=size(x)
if row==1&&col~=1%保证x为列向量
x=x
end
row=length(x)
index=1:row
px=[x,index]%构成排序前px
%采用选择排序2:
for ii=1:row- kk=ii
for jj=ii 1:row
if px(jj,1)>px(kk,1)
kk=jj
end
end
if kk~=ii
temp=px(kk,:)
px(kk,:)=px(ii,:)
px(ii,:)=temp
end
end

一个MATLAB小程序

原发布者:梦见天亮1
1.分段函数forx=-pi*6:pi/10:6*piy=sin(x)ify<0y=0endfprintf(x=%f,y=%f ,x,y)end2.计算距离x1=input(enterthex1:)y1=input(enterthey1:)x2=input(enterthex2:)y2=input(enterthey2:)d=sqrt((x1-x2).^2 (y1-y2).^2)fprintf(thedistanceofthetwopointsis:%f,d)v0=input(Enterthe初速度v0:)h0=input(Enterthe离地高度h0:)t=0:0.01:53.重力加速度h=-0.5*9.81*t.^2 v0*t h0v=-9.81*t v0plot(t,h,k-,t,v,b--)title(Plotofh(t)andv(t))xlabel(t)ylabel(h(t)andv(t))legend(h(t),v(t))4.坐标转换function[x,y]=polar2rect(r,theta)x=r*cos(theta*pi/180)y=r*sin(theta*pi/180)5.坐标转换,带参数检验function[mag,angle]=polar_value(x,y)msg=nargchk(1,2,nargin)error(msg)%Iftheyargumentismissing,setitto0.ifnargin<2y=0end%Checkfor(0,0)inputargument,andprintout%awarningmessage.ifx==0&y==0msg=Bothxandyarezero:angleismeaningless!warning(msg)end%Nowcalculatethemagnitudemag=sqrt(x.^2 y.^2)%Ifthesecondoutputargumentispresent,calculate%angleindegreesifnargout==2angle=atan2(y,x)*180/piend6.三维螺旋线t=0:pi/50:10*piplot3(sin(t),cos(t),t)gri

帮我用matlab编一个小程序,很简单

不知道你的数据是怎样排列的?我假定在data.txt文件里有两行数据,分别对应的是D和B,程序如下:
function w=myfun(k)
data=textread(data.txt)
D=data(1,:)B=data(2,:)
q=D*k B*(1-k)
Q=sum(q)
w=q/Q
将程序保存为myfun.m后,用w=myfun(k)的格式调用即可

matlab正态分布离散化小程序

clear
x=0:1:45
y=zeros(1,length(x))
for i=0:4y(i 1)=normcdf(i 1,35,5)-normcdf(i,35,5)%即P(iend
figure(1)
plot(x,y,or) %figure(1)为离散后的概率图
p=zeros(1,length(x))
for j=1:length(x)
p(j)=sum(y(1:j))
end
figure(2)
plot(x,p,or)
%figure(2)为离散化后的积累分布函数图,即P(x<=j)=P(j)
%对于离散化后,x已经为离散型变量,不会有概率密度函数的!
%希望我的回答能帮助你!

最新文章