MATLAB作业一一.编写一个脚本,判断输入字符串中每个单词的首字母是否为大写,若不是则将其修改为大写,其他字母为小写。
程序:string=input('Please enter a string:');if (string(1)>='a'&&string(1)<='z')string(1)=char(string(1)-32);endm=length(string);for i=2:mif (isspace(string(i-1))&&string(i)>='a'&&string(i)<='z')string(i)=char(string(i)-32);endenddisplay(string);结果:Please enter a string: 'gsGsdg gwg ghge'string =GsGsdg Gwg Ghge二.创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。
程序:student=struct('name',{'lichao'},'number',{'5262'},'subject',[1 2],...'score',[98 95])结果:student =包含以下字段的struct:name: 'lichao'number: '5262'subject: [1 2]score: [98 95]三.创建 2×2 单元数组,第 1、2 个元素为字符串,第三个元素为整型常量,第四个元素为双精度(double)类型,并将其用图形表示程序:string1=input('Please enter the first string:');string2=input('Please enter the second string:');number1=input('Please enter a numeber');number2=input('Please enter a rand number:');s={string1,string2,int8(number1),number2}cellplot(s);结果:Please enter the first string:'gsd'Please enter the second string:'sdgd'Please enter a numeber8Please enter a rand number:9s =1×4 cell 数组附:函数名功能描述函数名功能描述deal 把输入处理成输出fieldnames 获取结构的字段名getfield 获取结构中指定字段的值rmfield 删除结构的字段(不是字段内容) setfield 设置结构数组中指定的字段的值struct 创建结构数组struct2cell 结构数组转化成元胞数组isfield 判断是否存在该字段isstruct 判断某变量是否是结构类型MATLAB作业二1、找出所有这样的4 位正整数,其各位数字的4次方的和等于该数本身,例如:1634 = 14 + 64 + 34 + 44输出所有的满足条件的数至一行数组,这样的数共有多少个?程序:M=[];for t=1000:9999;a=fix(t/1000);b=fix(t/100)-a*10;c=fix(t/10)-a*100-b*10;d=rem(t,10);if t==a^4+b^4+c^4+d^4M=[M;t];endenddisp(M’);disp(numel(M));结果:1634 8208 947432、猴子吃桃问题:有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一个,第二天照此办理,吃掉剩下桃子的一半另加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?程序:s=1;for i=1:9;s=2*(s+1);enddisp(s);结果:15343、求Fibonacci 数组中第一个大于10000的元素。
1,1,2,3,5,8,13,21,34,55,89,…程序:f1=1;f2=1;f=0;while(f<=10000)f=f1+f2;f1=f2;f2=f;endfprintf('Fibonacci数组中第一个大于10000的元素是%d',f);结果:Fibonacci数组中第一个大于10000的元素是10946MATLAB作业三(函数练习)函数文件:myfirstfun.mfunction y=myfirstfun(x)%一个分段函数的计算[m,n]=size(x);y=zeros(m,n);for i=1:m;for j=1:n;if x(i,j)<0&&x(i,j)~=-4a=x(i,j)*x(i,j)+x(i,j)-6;else if x(i,j)>=0&&x(i,j)<10&&x(i,j)~=2&&x(i,j)~=3a=x(i,j)*x(i,j)-5*x(i,j)+6;elsea=x(i,j)*x(i,j)-x(i,j)-1;end;end;y(i,j)=a;end;end;主程序:x=-10:0.1:10;y=myfirstfun(x);hold on;for k =1:length(x)-1plot(x([k,k+1]),y([k,k+1]));End结果:2、Matlab没有专门的函数执行多项式加法(减法)如果两个多项式的阶次相同,其系数向量的长度相等,多项式的加法就是将两个多项式向量直接相加(相减)。
当两个多项式的阶次不同时,其系数向量的长度也不同,这时需要先将低阶多项式的系数向量前边补上足够的0,以便使它和高阶多项式具有相同的长度,然后再执行加法(减法)运算。
请编写一个函数p = polyadd(p1,p2)实现不同阶次多项式的加法,并利用该函数完成下面的练习。
函数文件:ployadd.mfunction p=ployadd(p1,p2)%多项式的加法运算p1=p1(:).';p2=p2(:).';np1=length(p1);np2=length(p2);p=[zeros(1,np2-np1) p1]+[zeros(1,np1-np2) p2];主程序:p1=[0.69552 0.436 0.668 1.35];p2=[2.342 0 0.453 0];f=ployadd(p1,p2)结果:f =3.0375 0.4360 1.1210 1.3500函数文件:mysecondfun.mfunction y=mysecondfun(m,T,v)%理想气体的麦克斯韦速率分布函数y=[];k=1.381*10^(-23);for i=1:length(v)a=4*pi*((m/(2*pi*k*T))^(3/2))*exp((-m*v(i)^2)/(2*k*T))*v(i)^2;y=[y,a];end主程序:mNe=20.18*1.66*10^(-27); %前期的数值(常数)赋值mAr=39.94*1.66*10^(-27);v=0:2000;T1=273; T2=500;yNe1=mysecondfun(mNe,T1,v); %调用麦克斯韦速率分布函数yNe2=mysecondfun(mNe,T2,v);yAr1=mysecondfun(mAr,T1,v);yAr2=mysecondfun(mAr,T2,v);subplot(2,2,1); %绘制Ne气在t1,t2下的麦克斯韦速率分布曲线plot(yNe1,v,'--r');hold on;plot(yNe2,v,'-b');subplot(2,2,2); %绘制Ar气在t1,t2,下的麦克斯韦速率分布曲线plot(yAr1,v,'--r');hold on;plot(yAr2,v,'-b');subplot(2,2,3); %绘制Ne和Ar气在t1下的麦克斯韦速率分布曲线plot(yNe1,v,'--r');hold on;plot(yAr1,v,'-b');subplot(2,2,4); %绘制Ne和Ar气在t2下的麦克斯韦速率分布曲线plot(yNe2,v,'--r');hold on;plot(yAr2,v,'-b');结果:MATLAB作业四(绘图作业)1、请用三种不同的方法将三条曲线同时绘制在一个figure窗口(提示:其中有一种是用subplot),并在每一条曲线的旁边加上曲线的公式,这三条曲线的公式、颜色和线形均由你们定,但是,横轴,也就是x轴都是[-10,10],间隔为0.5。
①方法一程序:x=-10:0.5:10;y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);subplot(2,2,1);plot(x,y1,'-r');text(0,0,'y1=sin(x)');subplot(2,2,2);plot(x,y2,'--g');text(0,0,'y2=cos(x)');subplot(2,1,2);plot(x,y3,'-.b');text(0,0,'y3=sin(x)+cos(x)');结果:②方法二程序:x=-10:0.5:10;y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);hold onplot(x,y1,'-r');plot(x,y2,'--g');plot(x,y3,'-.b');legend('sin(x)','cos(x)','sin(x)+cos(x)');结果:③方法三程序:x=-10:0.5:10;y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);plot(x,y1,'-r',x,y2,'--g',x,y3,'-.b');legend('sin(x)','cos(x)','sin(x)+cos(x)','location','northwest'); 结果:2、还是这道题,不使用subplot方法将三条曲线绘制在同一个figure窗口中,然后为它们增加标注、标题、横坐标、纵坐标的名称(随便你们想),再加上网格。