首页 > 更多文库 > 1号文库 > 详情页

MATLAB 编程题总结

2024-03-10 21:41:31

千文网小编为你整理了多篇相关的《MATLAB 编程题总结》,但愿对你工作学习有帮助,当然你在千文网还可以找到更多《MATLAB 编程题总结》。

第一篇:MATLAB游戏编程实例拼

MATLAB游戏编程实例(拼图)

这是一个简单的游戏,只要把数字按顺序排好就可以了。游戏方法是用鼠标点中数字,如果该数字相邻的格子为空,则自动移到到该空格。

本程序是由realghost编写,如果有问题可以与 slqinyi@163.com 联系。

附图如下:

function pintu1()A = gen()

G = [1 2 3;4 5 6;7 8 0];drawmap(A);

while 1

[xpos,ypos] = ginput(1);col = ceil(xpos);row = 3-ceil(ypos)+1;num = A(row,col);

if row>1&A(row-1,col)==0 A(row-1,col)= num;

A(row,col)= 0;

end

if row

end

if col>1&A(row,col-1)==0 A(row,col-1)= num;A(row,col)= 0;

end

if col

end

drawmap(A)

zt = abs(A-G);

if sum(zt(:))==0

msgbox('ÄãÒѾ-³É¹¦Æ´ºÃͼ£¡')break

end end

function drawmap(A)clf;hold on

line([0 3],[0 0],'linewidth',4);line([3 3],[0 3],'linewidth',4);line([0 3],[3 3],'linewidth',4);line([0 0],[0 3],'linewidth',4);

for i = 1:3

for j = 1:3

drawrect([j-1 3-i],[j 3-i],[j 3-i+1],[j-1 3-i+1],'y',A(i,j));

end end

axis equal axis off

function drawrect(x1,x2,x3,x4,color,num)x = [x1(1)x2(1)x3(1)x4(1)];y = [x1(2)x2(2)x3(2)x4(2)];fill(x,y,color)if num==0

text(0.5*(x1(1)+x2(1)),0.5*(x1(2)+x4(2)),' ','fontsize',24)else

text(0.5*(x1(1)+x2(1))-0.05,0.5*(x1(2)+x4(2)),num2str(num),'fontsize',24)end

function y = gen()y = inf*ones(1,9);for i = 1:9

while 1

a = randint(1,1,9);

if isempty(find(y==a))y(i)= a;break

end

end end

y = reshape(y,3,3);

当然可以啦,其实图像就是数字矩阵,图像的拼接就是矩阵的拼接,横着拼得行数相等,竖着拼得列数相等就行

例子

clc;clear;

a=imread('我的图片.jpg');[m n t]=size(a);

b=a(1:fix(m/2),:,:);%取图像的上半部分

c=a(fix(m/2)+1:end,:,:);%取图像的下半部分

figure(1);imshow(b);

figure(2);imshow(c);

%注意,上下拼接要求两幅图的列数要相同 %左右拼行数要相同

figure(3);d=[b;c];%把b,c拼起来,若左右拼接d=[b,c];imshow(d);

第二篇:MATLAB编程题总结

MATLAB 编程题总结

LY 1.输出x,y两个中值较大的一个值。

x=input('x=');y=input('y=');if x>y x else y end 2.输入x,计算y的值。计算函数的值yx1,x0

2x1,x0x=input('x=');if x

x=input('x=');if x>100 | x=90 y='优秀' elseif x>=80 y='良好' elseif x>=70 y='中等'

elseif x>=60 y='及格' else

y='不合格' end

4.某购物超市节日期间举办购物打折扣的促销活动,优惠办法是:每位顾客当天一次性购物在100元以上者,按九五折优惠;在200元以上者,按九折优惠;在300元以上者,按八五折优惠;在500元以上者,按八折优惠。则可以根据顾客购物款数计算出优惠价。

x=input('x=');if x>=500

y=x*0.8 elseif x>=300 y=x*0.85 elseif x>=200 y=x*0.9 else

y=x*0.95 end

5.编程计算:S=1+2+3+„+100

sum=0;

for i=1:100 sum=sum+i;end sum

6.计算1~100的奇数和.sum=0;

for i=1:2:100 sum=sum+i;end Sum 或

sum=0;

for i=1:100

if mod(i,2)==1 sum=sum+i;end

end sum

7.百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。

设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:

x+y+z=100 3x+2y+0.5z=100

三个未知数,两个方程,此题有若干个解。

for x=1:33

for y=1:50

for z=1:200

if x+y+z==100 & 3*x+2*y+0.5*z==100 [x,y,z] end end end end

8.我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法,可根据公式:26=13*(1+0.008)n

LiYang

第 1 页 / 共 6 页

MATLAB 编程题总结

LY n=1;m=13;while m

for i=100:999 a(1)=fix(i/100);a(2)=fix((i-a(1)*100)/10);a(3)=i-a(1)*100-a(2)*10;if a(1)^3+a(2)^3+a(3)^3==i i end end 10.鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有头36个,脚100个,求笼内关了多少只兔子和多少只鸡?

for i=1:50 for j=1:36 if i+j==36&i*2+j*4==100 [i,j] end end end 1.用matlab编程求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表

示一个三位数)。

for x=1:9

for y=1:9 for z=1:9

i=100*x+10*y+z+100*y+10*z+z;

if i==532 [x,y,z] end end end end

2.用matlab编程完成用一元人民币换成一分、两分、五分的所有兑换方案(即输出所有的组合方式)。

for i=0:20

for j=0:50

k=100-i*5-j*2;if(k>=0)[i,j,k] end end end

3.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后可以卖完,请用matlab编程计算。

day=0;x1=1020 while(x1)

x2=x1/2-2;x1=x2;

day=day+1;

end day

4.有一堆零件(100到200之间),如果分成4个零件一组的,则多2个零件;若分成7个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。用matlab编程求这堆零件总数。

for i=100:200

if(mod(i-2,4)==0)

if(mod(i-3,7)==0)

if(mod(i-5,9)==0)i end end end end

5.编写程序,求1000至9999之间的回文数.回文数是指正读与反读都一样的数,如1221.for i=1000:1000:9999 for j=0:9

n=i+j*100+j*10+i/1000 end 6.作函数

yend sin(x),x[0,2]的图象,用蓝色五角星表示点。

x=0:pi/10:2pi;y=sin(x);

plot(x,y,’b-p’);

LiYang

第 2 页 / 共 6 页

MATLAB 编程题总结

LY 1: 编写M函数 32fx2xx6.3, x20.05x3.14计算f(1)f(2)f2(3)

function y= fun1(x)y=(x^36.3)/(x^2 + 0.05*x-3.14);fun1(1)*fun1(2)+fun1(3)*fun1(3)ans =-12.6023 2:编写M函数x1,x2f(x)3x,2x84x5,8x20,cosxsinx,x20计算f(0.1),f(1),f(9),f(22),f(2)

function y=fff(x)if x=2 & x8 & x

y=0;n=100;

for i=1:n y=y+1/i/i;end y y =

1.6350 pi=sqrt(6*y)pi =

3.1321 y=0;n=1000;for i=1:n y=y+1/i/i;end y y =

1.6439 pi=sqrt(6*y)pi =

3.1406 y=0;n=10000;for i=1:n y=y+1/i/i;end y y =

1.6448 pi=sqrt(6*y)pi =

3.1415(2)y=0;n=8;

y=1./2*n-1;y y=

4:编程求[100,200]之间第一个能被21整除的整数。

for n=100:200 if rem(n,21)~=0 continue end break end

n

5:编写函数文件求半径为r的圆的面积和周长。

function [s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;

6:根据y=1+11,求: 3152n-1(1)y

y=1;n=1;while(y

end

y=y-1/n n=(n+1)/2 运行结果: y =

2.9944

n =

LiYang

第 3 页 / 共 6 页

MATLAB 编程题总结

LY 57 7: 已知f11,n1f20,n2f31,n3

fnfn12fn2fn3,n3求f中:

1~f100最大值、最小值、各数之和。

f(1)=1;f(2)=0;f(3)=1;for i=4:100

f(i)=f(i-1)-2*f(i-2)+f(i-3);end max(f)min(f)sum(f)

1.编程计算3+33+333+3333+„..前10项之和。

m=3;n=0;s=0;for i=1:10 n=10*n+m;s=s+n;end s

2.编程求

1-1/2+1/3-1/4+.......+1/99-1/100的值。

s=0;

for i=1:100

s=s+(-1)^(i-1)*1/i;end

s3.编写程序,求 1-3+5-7+„-99+101的值。

s=0;j=1;

for i=1:2:101

s=s+(-1)^(j-1)*i;j=j+1;end

s4.编写程序,输出从公元1000年至2000年所有闰年的年号。判断公元年是否为闰年的条件是:

(1)公元年数如能被4整除,而不能被100

整除,则是闰年;

(2)公元年数能被400整除也是闰年。

for year=1000:2000

if(mod(year,4)==0&mod(year,100)~=0)|mod(year,400)==0 year end end

5.将10个整数输入到一个数组中,然后再将

其按输入顺序的逆序进行排列并输出。

for i=1:10

a(i)=input('x=');end

for i=10:-1:a(i)end

6.一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少m?第10次反弹多高?

Sn=100;Hn=Sn/2;for n=0:10

Sn=Sn+2*Hn;Hn=Hn/2;end Sn Hn

7.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,见只剩一个桃子了。求第一天共摘多少桃子。

day=9;x=1;while(day>0)x=(x+1)*2;day=day-1;end x

LiYang

第 4 页 / 共 6 页

MATLAB 编程题总结

LY 附:

matlab期中试卷及答案

一、计算题

1.已知A=[1 2 3;4 5 6;7 8 9],B=[1 5 0;1 0 3;0 3 4],试写出下列指令运行的结果: A

2.设a= [1,-2,3;4,5,9;6,3,-8], b= [2,6,1;-3,2,7;4,8,-1]。

(1)求a.*b

(2)求a.^2

(3)求 2-a

(4)求a(1:2,2:3)

(5)求min(a(:))

二、计算下列程序运行的结果

1、mysum=0;i=1;

while(i

mysum=mysum+i;

i=i+1;

end

mysum

2、A=[1,2,3;4,5,6;7,8,9];

C=[A;[10,11,12]];

D=C(1:3,[2 3]);

E=C(1:3,:)

写出C、D、E的结果

3、x=[0,1,0,10,1,0,1];

for i=1:7 if x(i)==0

x(i)=1;

else

500≤price

5%折扣

x(i)=0;

1000≤price

8%折扣

end

2500≤price

10%折扣

end 5000≤price

14%折扣

x

输入所售商品的价格,求其实际销售价格。

4、c=6;d=[4,0,6;0,8,0];(3)fibonccci数组的元素满足fibonacci规则:

x=d & c ak+2=ak+ak+1,(k=1,2,…);且a1=a2=1。现要求求出该数组中

y=d|c 第一个大于10000的元素。

z=~d

(4)计算1!+2!+3!+4!+5!+6!+„+n!值的程

写出x、y、z的结果

序。(n可以自由输入)

三、(1)建立M函数完成下列运算(函数名为

五、分析下面程序运行后s1,n1,s2,n2,m的值.jygxfun)

s1=0;s2=0;n1=0;n2=0

f(x,y,z)ze(xy)xyzsin(xy3z)x=[1,-4,-8,3,10,-9,7,-3,10, 8,-5,-2,2,0 ];

m=length(x);(2)若x=1,y=2,z=3,采取调用jygxfun方式计算

for i=1:m f值, 试编程.if x(i)

四、(1)编程计算下面问题, x值由键盘输入

s1=s1+x(i);2n1=n1+1;

yx1,x1else x2,1x

1s2=s2+x(i);

n2=n2+1;

(input语句).x21,x1 end

end

(2)某商场对顾客所购买的商品实行打折销

s1,n1,s2,n2,m 售,标准如下(商品价格用price来表示):

2.(1)

price

没有折扣

2-12

200≤price

3%折扣

a.*b=-12 10

24

LiYang

第 5 页 / 共 6 页

MATLAB 编程题总结

LY(2)1 a.^2= 16 25 81 36 9

64(3)2-a= 1

4-1-2

–7(4)-4

-1-2 a(1:2,2:3)= 5

(5)min(a(:))=-8 二1、4950

2、C =1 10 D = E = 1

3、x =1

0

0

0

4、x = 1

0

0

0

y = 1 z = 0

0

0

三、解:(1)

function [f]=jygxfun(x,y,z)

f=z*exp(-(x+y))+sqrt(x+y+z)*sin(x+y+3*z);(2)

x=1;y=2;z=3;f= jygxfun(x,y,z)

四、(1)解: x=input('x=?');

if x>=1

y=x^2+1;else if x

y

(2)price=input('请输入商品价格');switch fix(price/100)

0 case {0,1}

%价格小于200 rate=0;

case {2,3,4} %价格大于等于200但小于500

rate=3/100;

case num2cell(5:9)%价格大于等于500但小于1000

rate=5/100;

case num2cell(10:24)%价格大于等于1000但小于2500

rate=8/100;

case num2cell(25:49)%价格大于等于2500但小于5000

rate=10/100;

otherwise %价格大于等于5000 rate=14/100;end

price=price*(1-rate)%输出商品实际销售价格(3)

(4)n=input('n=')

s=0

for i=1:n

m=1

for j=1:i

m=m*j;

end

s=s+m;end s

五、s1=-31;n1=6;s2=41;n2= 8;m= 14

LiYang

第 6 页 / 共 6 页

推荐专题: MATLAB编程题总结

相关推荐
本站文档由会员上传,版权归作者所有,如有侵权请发送邮件至89702570@qq.com联系本站删除。
Copyright © 2010 - 千文网移动版
冀ICP备2020027182号