您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页matlab经典习题及解答

matlab经典习题及解答

来源:纷纭教育


第1章 MATLAB概论

1.1 与其他计算机语言相比较,MATLAB语言突出的特点是什么?

MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成?

MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。

1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为窗口?又如何将脱离出去的窗口重新放置到桌面上?

在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为窗口,在窗口的view菜单中选择Dock ……菜单项就可以将的窗口重新防止的桌面上。

1.5 如何启动M文件编辑/调试器?

在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。

1.6 存储在工作空间中的数组能编辑吗?如何操作?

存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。

1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?

命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?

当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。

1.9 在MATLAB中有几种获得帮助的途径? 在MATLAB中有多种获得帮助的途径:

(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器; (2)help命令:在命令窗口键入“help” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息;

(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数 (4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。 注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。

第2章 MATLAB矩阵运算基础

2.1 在MATLAB中如何建立矩阵>> a=[5 7 3;4 9 1]

2.2 有几种建立矩阵的方法?各有什么优点? 可以用四种方法建立矩阵:

①直接输入法,如a=[2 5 7 3],优点是输入方法方便简捷;

②通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; ③由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵; ④通过数据文件建立,该方法可以调用由其他软件产生数据。

2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?

进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数。

2.4 数组运算和矩阵运算的运算符有什么区别?

573,并将其赋予变量a?

491

在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。

5352422.5 计算矩阵374与679之和。 798836>> a=[5 3 5;3 7 4;7 9 8]; >> b=[2 4 2;6 7 9;8 3 6]; >> a+b ans =

7 7 7 9 14 13 15 12 14

2.6 求x48i35i27i14i75i的共轭转置。

32i76i94i39i44i>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i]; >> x’ ans =

4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 - 5.0000i 7.0000 + 6.0000i 2.0000 + 7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i

2.7 计算a693241与b的数组乘积。

275468>> a=[6 9 3;2 7 5]; >> b=[2 4 1;4 6 8]; >> a.*b ans =

12 36 3 8 42 40

2.8 “左除”与“右除”有什么区别?

在通常情况下,左除x=a\\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\\bb/a。

492372.9 对于AXB,如果A7,B26,求解X。

35728>> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]’; >> X=A\\B X = -0.5118

4.0427 1.3318

1232.10 已知:a456,分别计算a的数组平方和矩阵平方,并观察其结果。 7>> a=[1 2 3;4 5 6;7 8 9]; >> a.^2 ans =

1 4 9 16 25 36 49 81 >> a^2 ans =

30 36 42 66 81 96 102 126 150

2.11 a125874,b,观察a与b之间的六种关系运算的结果。

364362>> a=[1 2 3;4 5 6]; >> b=[8 –7 4;3 6 2]; >> a>b ans =

0 1 0 1 0 1 >> a>=b ans =

0 1 0 1 0 1 >> a1 0 1 0 1 0 >> a<=b ans =

1 0 1 0 1 0 >> a==b ans =

0 0 0 0 0 0 >> a~=b ans =

1 1 1

1 1 1

2.12 a50.20

2.13 在sin(x)运算中,x是角度还是弧度?

在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算。

2.14 角度x304560,求x的正弦、余弦、正切和余切。 >> x=[30 45 60]; >> x1=x/180*pi; >> sin(x1) ans =

0.5000 0.7071 0.8660 >> cos(x1) ans =

0.8660 0.7071 0.5000 >> tan(x1) ans =

0.5774 1.0000 1.7321 >> cot(x1) ans =

1.7321 1.0000 0.5774

2.15 用四舍五入的方法将数组[2.4568 6.3982 3.9375 8.5042]取整。 >> b=[2.4568 6.3982 3.9375 8.5042]; >> round(b) ans =

2 6 4 9

80.7,在进行逻辑运算时,a相当于什么样的逻辑量。

相当于a=[1 1 0 1 1]。

9122.16 矩阵a563,分别对a进行特征值分解、奇异值分解、LU分解、QR分解及Chollesky 分解。 827>> [v,d]=eig(a,b) v =

-0.4330 -0.2543 -0.1744 -0.5657 0.9660 -0.6091 -0.7018 0.0472 0.7736 d =

13.5482 0 0 0 4.8303 0 0 0 3.6216 >> a=[9 1 2;5 6 3;8 2 7]; >> [u,s,v]=svd(a) u =

-0.5601 0.5320 -0.6350 -0.4762 -0.8340 -0.2788 -0.6779 0.1462 0.7204 s =

15.5234 0 0 0 4.58 0 0 0 3.3446 v =

-0.8275 0.3917 -0.4023 -0.3075 -0.9156 -0.2592 -0.4699 -0.0907 0.8781 >> [l,u]=lu(a) l =

1.0000 0 0 0.5556 1.0000 0 0.88 0.2041 1.0000 u =

9.0000 1.0000 2.0000 0 5.4444 1.88 0 0 4.8367 >> [q,r]=qr(a) q =

-0.6903 0.3969 -0.6050 -0.3835 -0.9097 -0.1592 -0.6136 0.1221 0.7801 r =

-13.0384 -4.2183 -6.8260 0 -4.8172 -1.0807 0 0 3.7733 >> c=chol(a) c =

3.0000 0.3333 0.6667 0 2.4267 1.1447 0 0 2.2903

2.17 将矩阵a427159bc、和8362组合成两个新矩阵: 57(1)组合成一个43的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即

45 277586 1932(2)按照a、b、c的列顺序组合成一个行矢量,即 452778135692

>> a=[4 2;5 7]; >> b=[7 1;8 3]; >> c=[5 9;6 2]; % (1)

>> d=[a(:) b(:) c(:)] d =

4 7 5 5 8 6 2 1 9 7 3 2 % (2)

>> e=[a(:);b(:);c(:)]' e =

4 5 2 7 7 8 1 3 5 6 9 2 或利用(1)中产生的d >> e=reshape(d,1,12) ans =

4 5 2 7 7 8 1 3 5 6 9 2

第3章 数值计算基础

3.2 求解多项式x3

-7x2+2x+40=0的根。

>> r=[1 -7 2 40]; >> p=roots(r); -0.2151 0.4459 0.7949 0.2707

3.4 计算多项式乘法(x+2x+2)(x+5x+4)。 >> c=conv([1 2 2],[1 5 4]) c =

1 7 16 18 8

3.5 计算多项式除法(3x+13x+6x+8)/(x+4)。 >> d=deconv([3 13 6 8],[1 4]) d =

3 1 2

3.7 计算多项式4x12x14x5x9的微分和积分。 >> p=[4 –12 –14 5]; >> pder=polyder(p); >> pders=poly2sym(pder) >> pint=polyint(p); >> pints=poly2sym(pint)

4323

2

2

2

pders =

12*x^2-24*x-14 pints =

x^4-4*x^3-7*x^2+5*x

290133.8 解方程组3411x6。 2266 >> a=[2 9 0;3 4 11;2 2 6]; >> b=[13 6 6]'; >> x=a\\b x = 7.4000 -0.2000 -1.4000

4263.11 矩阵a754,计算a的行列式和逆矩阵。 349 >> a=[4 2 -6;7 5 4 ;3 4 9]; >> ad=det(a) >> ai=inv(a) ad = - ai =

-0.4531 0.6562 -0.5937 0.7969 -0.8437 0.9062 -0.2031 0.1562 -0.0937

3.12 y=sin(x),x从0到2,x=0.02,求y的最大值、最小值、均值和标准差。 >> x=0:0.02*pi:2*pi; >> y=sin(x); >> ymax=max(y) >> ymin=min(y) >> ymean=mean(y) >> ystd=std(y) ymax = 1 ymin = -1 ymean = 2.2995e-017 ystd = 0.7071

3.13 x12345,y2 >> x=[1 2 3 4 5]; >> y=[2 4 6 8 10]; >> cx=cov(x) >> cy=cov(y) >> cxy=cov(x,y) cx = 2.5000 cy = 10 cxy =

2.5000 5.0000 5.0000 10.0000

3.15 有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插值。 >> x0=0:pi/5:4*pi; >> y0=sin(x0).*exp(-x0/10); >> x=0:pi/20:4*pi; >> y=spline(x0,y0,x); >> plot(x0,y0,'or',x,y,'b')

46810,计算x的协方差、y的协方差、x与y的互协方差。

第4章 符号数学基础

4.1 创建符号变量有几种方法?

MATLAB提供了两种创建符号变量和表达式的函数:sym和syms。

sym用于创建一个符号变量或表达式,用法如x=sym(‘x’) 及 f=sym(‘x+y+z’),syms用于创建多个符号变量,用法如syms x y z。

f=sym(‘x+y+z’) 相当于 syms x y z f= x+y+z

4.2 下面三种表示方法有什么不同的含义? (1)f=3*x^2+5*x+2 (2)f='3*x^2+5*x+2' (3)x=sym('x') f=3*x^2+5*x+2

(1)f=3*x^2+5*x+2

表示在给定x时,将3*x^2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。 (2)f='3*x^2+5*x+2'

表示将字符串'3*x^2+5*x+2'赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。 (3)x=sym('x') f=3*x^2+5*x+2

表示x是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。

4.3 用符号函数法求解方程at+b*t+c=0。 >> r=solve('a*t^2+b*t+c=0','t') r =

[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))] 4.5 求矩阵A2

a11a21a12的行列式值、逆和特征根。 a22 >> syms a11 a12 a21 a22; >> A=[a11,a12;a21,a22]

>> AD=det(A) % 行列式 >> AI=inv(A) % 逆 >> AE=eig(A) % 特征值 A = [ a11, a12] [ a21, a22] AD =

a11*a22-a12*a21 AI =

[ -a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21)] [ a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21)] AE =

[ 1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)] [ 1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]

4.6 因式分解:x45x35x25x6 >> syms x;

>> f=x^4-5*x^3+5*x^2+5*x-6; >> factor(f) ans =

(x-1)*(x-2)*(x-3)*(x+1)

a4.7 faxe1x,用符号微分求df/dx。

log(x)sin(x)x2 >> syms a x;

>> f=[a, x^2, 1/x; exp(a*x), log(x), sin(x)]; >> df=diff(f)

df =

[ 0, 2*x, -1/x^2] [ a*exp(a*x), 1/x, cos(x)]

第5章 基本图形处理功能

5.1 绘制曲线yx3x1,x的取值范围为[-5,5]。 >> x=-5:0.2:5; >> y=x.^3+x+1; >> plot(x,y)

-at5.2 有一组测量数据满足ye,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况

下的曲线。

>> t=0:0.5:10; >> y1=exp(-0.1*t); >> y2=exp(-0.2*t); >> y3=exp(-0.5*t);

>> plot(t,y1,'-ob',t,y2,':*r',t,y3,'-.^g')

-at5.3 在5.1题结果图中添加标题ye,并用箭头线标识出各曲线a的取值。

>> title('\\ity\\rm=e^{-\\itat}')

>> title('\\ity\\rm=e^{-\\itat}','FontSize',12)

>> text(t(6),y1(6),'\\leftarrow\\ita\\rm=0.1','FontSize',11) >> text(t(6),y2(6),'\\leftarrow\\ita\\rm=0.2','FontSize',11) >> text(t(6),y3(6),'\\leftarrow\\ita\\rm=0.5','FontSize',11)

-at5.4 在5.1题结果图中添加标题ye和图例框。

>> title('\\ity\\rm=e^{-\\itat}','FontSize',12) >> legend('a=0.1','a=0.2','a=0.5')

5.5表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。

观测点1 观测点2 观测点3 观测点4 >> bar(y)

第1次 3 6 9 6 第2次 6 7 7 4 第3次 7 3 2 3 第4次 4 2 5 2 第5次 2 4 8 7 第6次 8 7 4 4 >> y=[3 6 9 6;6 7 7 4;7 3 2 3;4 2 5 2;2 4 8 7;8 7 4 4];

>> bar(y,’stack’)

5.6 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。 >> x=[66 49 71 56 38]; >> L=[0 0 0 0 1]; >> pie(x,L)

x5.7 zxe2y2,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网

线图、表面图和带渲染效果的表面图。

>> [x,y]=meshgrid([-2:.2:2]); >> z=x.*exp(-x.^2-y.^2); >> mesh(x,y,z)

>> subplot(2,2,1), plot3(x,y,z) >> title('plot3 (x,y,z)') >> subplot(2,2,2), mesh(x,y,z)

>> title('mesh (x,y,z)') >> subplot(2,2,3), surf(x,y,z) >> title('surf (x,y,z)')

>> subplot(2,2,4), surf(x,y,z), shading interp >> title('surf (x,y,z), shading interp')

5.8 绘制peaks函数的表面图,用colormap函数改变预置的色图,观察色彩的分布情况。 >> surf(peaks(30));

>> colormap(hot)

>> colormap(cool)

>> colormap(lines)

5.9 用sphere函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。 >> [x,y,z]=sphere(30); >> mesh(x,y,z)

>> mesh(x,y,z),hidden off

>> surf(x,y,z)

>> z(18:30,1:5)=NaN*ones(13,5); >> surf(x,y,z)

5.10 将5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的

显示。

axis square axis off

第6章 M文件编程

6.1 命令文件与函数文件的主要区别是什么?

(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;

(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;

(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。

6.2 如何定义全局变量?

用关键字global可以把一个变量定义为全局变量,在M文件中定义全局变量时,如果在当前工作空间已经存在了相同的变量,系统将会给出警告,说明由于将该变量定义为全局变量,可能会使变量的值发生改变,为避免发生这种情况,应该在使用变量前先将其定义为全局变量。

6.4 if语句有几种表现形式? (1)if 表达式 语句体 end (2)if 表达式 语句体1 else 语句体2 end (3)if 表达式1 语句体1 elseif 表达式2 语句体2 end (4)if 表达式1 语句体1 elseif 表达式2 语句体2 else 语句体3

end

6.5 说明break语句和return语句的用法。

break语句用于终止for循环和while循环的执行。如果遇到break语句,则退出循环体,继续执行循环体外的下一行语句。在嵌套循环中,break只存在于最内层的循环中。

return语句用于终止当前的命令序列,并返回到调用的函数或键盘,也用于终止keyboad方式,在MATLAB中,被调用的函数运行结束后会自动返回调用函数,使用return语句时将return插入被调用函数的某一位置,根据某种条件迫使被调用函数提前结束并返回调用函数。

6.7 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。

function c=collatz(n)

% collatz

% Classic “3n+1” Ploblem from number theory c=n;

while n>1

if rem(n,2)==0 n=n/2; else

n=3*n+1; end

c=[c n]; end

6.8 有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在90~99之间时为优秀,成绩在80~分之间时为良好,成绩在60~79分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等级的程序。

学生姓名 成 绩

Name=['王','张','刘','李','陈','杨','于','黄','郭','赵']; Marks=[72,83,56,94,100,88,96,68,54,65];

% 划分区域:满分(100),优秀(90-99),良好(80-),及格(60-79),不及格(<60)。 n=length(Marks); for i=1:n a{i}=+i; b{i}=79+i; c{i}=69+i; d{i}=59+i; end; c=[d,c];

% 根据学生的分数,求出相应的等级。 for i=1:n

switch Marks(i) case 100

%得分为100时

Rank(i,:)=' 满分'; case a Rank(i,:)=' 优秀'; case b

%得分在80~之间

Rank(i,:)=' 良好';

%得分在90~99之间

王 72 张 83 刘 56 李 94 陈 100 杨 88 于 96 黄 68 郭 54 赵 65

case c otherwise end end

% 将学生姓名,得分,级等信息打印出来。 disp(' ')

disp(['学生姓名 ',' 得分 ',' 等级']); disp('--------------------------') for i=1:10;

disp([' ',Name(i),' ',num2str(Marks(i)),' end

学生姓名 得分 等级

----------------------------------------- 王 72 及格 张 83 刘 56 李 94

良好 不及格 优秀

',Rank(i,:)]);

%得分在60~79之间 %得分低于60。

Rank(i,:)=' 及格'; Rank(i,:)='不及格';

陈 100 满分 杨 88 良好 于 96 优秀 黄 68 及格 郭 54 赵 65

6.10 keyboard命令的作用是什么?当在函数中使用keyboard命令时,是否可以在工作空间浏览器中观察和修改函数中的局部变量?退出keyboard状态的命令是什么?编一个函数文件,在其中设置keyboard,观察变量情况。

当运行中的程序遇到keyboard命令时会暂时停止运行,将控制权交给键盘,这时命令窗口的提示符变为K>>,可以在命令窗口或工作空间浏览器中观察和修改变量内容,如果keyboard命令设置在函数中,则可以观察和修改函数中的局部变量,检查或修改完成后,键入return命令,退出keyboard状态,控制权交还给系统,程序将继续运行。

书上第四章习题 4.1

不及格 及格

function [X1,X2]=matlab401(a,b,c) d=b^2-4*a*c; if d>0

X1=(-b+sqrt(d))/(2*a); X2=(-b-sqrt(d))/(2*a); elseif d==0 X1=(-b)/(2*a); X2=X1; else

r=(-b)/(2*a);

k=(sqrt(abs(d)))/(2*a);

X1=r+k*i; X2=r-k*i; end

disp([X1,X2])

测试数据 (1)

>>matlab401(1,2,1) %两个相等的实根 (2)

>>matlab401(1,-1,-2) %两个不等的实根 (3)

>>matlab401(1,4,6.25) %两个不等的虚根 4.2

function fenS=matlab402(n) fenZ=zeros(1,n); fenM=ones(1,n); fenZ(1)=2; fenZ(2)=3; fenM(1)=1; fenM(2)=2;

fenSum=fenZ(1)/fenM(1)+fenZ(2)/fenM(2); for i=3:n

fenZ(i)=fenZ(i-1)+fenZ(i-2); fenM(i)=fenM(i-1)+fenM(i-2); fenS(i)=fenZ(i)/fenM(i); fenSum=fenSum+fenS(i); end

disp(fenSum)

测试数据 (1)

>>matlab402(3) %前3项的和 (2)

>>matlab402(15) %前15项的和 4.3

clear;clc;close all; funy=zeros(1,601); i=1;

for x=-3:0.01:3 if (x>-1)&(x<=-3) y=(-x.^2-4*x-3)/2; funy(i)=y; i=i+1;

elseif (x>=-1)&(x<1) y=-x.^2+1; funy(i)=y;

i=i+1; else

y=(-x.^2+4*x-3)/2; funy(i)=y; i=i+1; end end

x=-3:0.01:3; plot(x,funy,'r*-')

运行 >>matlab403 4.4

clear;clc;close all;

A=[-4 -2 0 2 4;-3 -1 1 3 5]; B=abs(A);

C=find(B>3);%ÕÒ³öAÖоø¶ÔÖµ´óÓÚ3µÄÔªËØËùÔÚµÄλÖà D=[];%´æ·ÅAÖоø¶ÔÖµ´óÓÚ3µÄÔªËØ for i=1:length(C)

D(length(D)+1)=A(C(i)); end disp(C) disp(D)

运行 >>matlab404 结果C=[1 9 10]’ D=[-4 4 5] 4.5

clear;clc;close all; jc=1;i=1; while jc<1000 i=i+1; jc=jc*i; end n=i-1

运行 >>matlab405 结果n=6 4.6

function matlab406(m,n)

% ÕÒ³ö¡¾m,n¡¿·¶Î§ÄÚ²»Äܱ»3Õû³ýµÄÊý²¢Êä³ö %num=zeros(1,n-m); j=1;

for i=m:n if mod(i,3)~=0 num(j)=i; j=j+1; end end disp(num)

运行

>>matlab406(100,200) 4.7

clear;clc;close all numb=0;%ͳ¼Æ0µÄ¸öÊý±äÁ¿ for i=1:1999 temp=num2str(i);

numb=numb+length(strfind(temp,'0')); end

disp(['The numbers is:',num2str(numb)]);%Êä³ö¼ÆÊýµÄ¸öÊý£¡

4.8 (1)冒泡法

function matlab408a(P) for i=1:length(P)

for j=2:(length(P)-i+1) if P(j-1)>P(j) Q=P(j-1); P(j-1)=P(j); P(j)=Q; end end disp(P) end disp(P)

运行

>>matlab408a([5 3 9 6 2 7 1]) (2)选择法

function matlab408b(P) for i=1:length(P)-1 k=i;

for j=i+1:length(P) if P(j-1)>P(j) k=j; end end if(k~=i)

Q=P(k); for ii=k:-1:i+1 P(ii)=P(ii-1); end P(i)=Q; end disp(P) end

4.11

clear; clc; close all; for i=1:500 s=0; for k=1:i/2 if mod(i,k)==0 s=s+k; end end if i==s disp(i) end end

运行 >>matlab411 4.12

clear;clc;close all; ShuiXianHua=[]; for i=100:999

kStr=num2str(i); strHe=0;

for j=1:length(kStr)

strHe=strHe+(str2num(kStr(j)))^3; end

if strHe==i

ShuiXianHua(length(ShuiXianHua)+1)=i; end end

disp(ShuiXianHua)

运行 >>matlab412 4.13

function matlab413(n) %¼ÆËã½×³ËÖ®ºÍ q=0; for i=1:n p=1; for j=1:i p=p*j; end q=q+p; end disp(q)

运行测试 >>matlab413(3) >>matlab413(1000) 4.14

(1)

function matlab414a(n) %¹¹Ôì¾ØÕó a=ones(n,n); for i=2:n for j=1:i a(i,j)=i-j+1; end end disp(a)

运行

>>matlab414a(5) (3)

function matlab414c(n) %¹¹Ôì¾ØÕóC if mod(n,2)==0 c=zeros(n,n); for i=1:n/2

c([i,n-i+1],[i:n-i+1,i:n-i+1])=i; c([i:n-i+1,i:n-i+1],[i,n-i+1])=i; end else

c=zeros(n,n); for i=1:n/2+1

c([i,n-i+1],[i:n-i+1,i:n-i+1])=i; c([i:n-i+1,i:n-i+1],[i,n-i+1])=i; end end disp(c)

运行

>>matlab414c(5) >>matlab414c(6)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务