c=strvcat(a,b)
6、 用结构体数组来存储2名学生的基本情况数据,每名学生的数据包括
学号、姓名、专业和2门课程的成绩。 解:clear,clc
xuesheng=struct('num',{222,22},'name',{'mike','hike'},'major','tele','score',{rand(2,1)*100,rand(2,1)*100}) xuesheng.score
7、 求S=20+21+22+23+24+??+210的值(提示:利用求和函数与累乘积函数。) 解:a=2*ones(1,10) b=cumprod(a) c=sum(b)+1 aa=2*ones(1,11) aa(1)=1 bb=cumprod(aa) cc=sum(bb)
8、 建立矩阵A并回答有关问题
A{1,1}=1; A{1,2}='Brenden'; A{2,1}=reshape(1:9,3,3);
A{2,2}={12,34,2;54,21,3;4,23,67};
1) 使用访问的方式如何将Brenden改写成BRENDEN?
2) 分别执行A(3)=[]和A{3}=[]后,A的值各是多少?并说明原因。
解:A{1,1}=1; A{1,2}='Brenden'; A{2,1}=reshape(1:9,3,3);
A{2,2}={12,34,2;54,21,3;4,23,67}; A{1,2}=upper(A{1,2}) A{3}=[] A(3)=[]
9、 利用MATLAB提供的rand函数和圆整函数随机生成4X3整数矩阵A,
进行如下操作
1)A各列元素的平均值和中值
2)A的最大元素和最小元素及它们的位置 3)求A的每行元素的和以及全部元素之和
4)分别对A的每列元素按升序、每行元素按降序排列 解:A=round(rand(4,3)) A_mean=mean(A) A_median=median(A) A_max=max(max(A)) A_min=min(min(A)) [x,y]=find(A==A_max) [xx,yy]=find(A==A_min) A_maxlocal=[x(1) y(1)] A_minlocal=[xx(1) yy(1)] A_rsum=sum(A,2)
A_sum=sum(sum(A)) A_csort=sort(A) A_rsort=abs(sort(-A,2))
实验三、MATLAB程序设计
实验内容及步骤
1、 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分
~100分为A,80分~89分为B,70分~79为C,60分~69分为D,60分以下为E。
要求:1)分别用if语句和switch语句实现
2)对不合理的成绩应输出出错信息“输入的成绩不合理”(若成绩出现小数,则只能是“.5”) 解:score=input('请输入您的分数:'); if rem(score,0.5)==0 switch score
case num2cell(90:0.5:100) disp('您的成绩等级为 A') case num2cell(80:0.5:89) disp('您的成绩等级为 B') case num2cell(70:0.5:79) disp('您的成绩等级为 C') case num2cell(60:0.5:69) disp('您的成绩等级为 D') case num2cell(0:0.5:59.5)
disp('您的成绩等级为 E') otherwise
disp('你输入的成绩不合理') end else
disp('你输入的成绩不合理,若出现小数只能是0.5') end
2、 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位
随机整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。(sy312.m) 解:a=input('请输入一个数:'); b=input('请再输入一个数:');
fuhao=input('请输入一个运算符号(+ - * /):','s'); switch fuhao case {'+'} he=a+b; disp(['
输
入
的
两
数
和
=',num2str(a),'+',num2str(b),'=',num2str(he)]) case {'-'} he=a-b; disp(['
输
入
的
两
数
差
=',num2str(a),'-',num2str(b),'=',num2str(he)]) case {'*'}
he=a*b; disp(['
输
入
的
两
数
乘
积
=',num2str(a),'*',num2str(b),'=',num2str(he)]) case {'/'} he=a/b; disp(['
输
入
的
两
数
商
=',num2str(a),'/',num2str(b),'=',num2str(he)]) otherwise disp('请输入正确的符号') end
3、 求下列分段函数的值
??2???6,??0且 ??-3?y???2?5??6,0??<10,??2且 ??3 ??2???1,其他? 要求:用if语句实现,分别输出x = -5.0,-3.0,1.0,2.0,2.5,
3.0,5.0时的y值。其中x的值以向量的形式从键盘输入。(sy313.m)
解:x=[]; y=[];
x=input('请输入x的值:'); for k=1:length(x) if x(k)<0 & x(k)~=-3 y(k)=x(k).^2+x(k)-6;
elseif x(k)>=0&x(k)<10&x(k)~=2&x(k)~=3 y(k)=x(k).^2-5*x(k)+6;