MATLAB基础教程 薛山第二版 课后习题答案 - 图文 下载本文

湖 北 汽 车 工 业 学 院 《MATLAB及应用》实验指导书

8.编写脚本,输出上面第6题中的表达式的值。

clear,clc

a=39;b=58;c=3;d=7;

disp('a>b');disp(a>b) disp('a

disp('a>b&&b>c');,disp(a>b&&b>c) disp('a==d');disp(a==d)

disp('a|b>c');disp(a|b>c) disp('~~d');disp(~~d)

第三章

1. 在命令提示符下输入以下两条命令:

>> x = [ 9 3 0 6 3]

>> y = mod((sqrt(length(((x+5).*[1 2 3 4 5]))*5)),3)

求y值为多少?

2. 在MATLAB中运行以下命令:

a = [3, 7, 2, 7, 9, 3, 4, 1, 6]; b = [7]; a(4) = []; vec1 = a==b; vec2 = mod(a,2)==0; c = sum(vec1); vec3 = vec1+vec2; d = vec3.*a; vec4 = find(a > 5); e = a(vec4) + 5; vec5 = find(a < 5); f = vec5.^2;

4

湖 北 汽 车 工 业 学 院 《MATLAB及应用》实验指导书

求c、d、e、f的值。

clear,clc

a = [3, 7, 2, 7, 9, 3, 4, 1, 6]; b = [7]; a(4) = []; vec1 = a==b; vec2 = mod(a,2)==0; c = sum(vec1); vec3 = vec1+vec2; d = vec3.*a; vec4 = find(a > 5); e = a(vec4) + 5; vec5 = find(a < 5); f = vec5.^2; disp('c=');disp(c) disp('d=');disp(d) disp('e=');disp(e) disp('f=');disp(f)

3. 向量操作时MATLAB的主要部分,使用给出的向量来做下面的练习。 注意:

不要直接给出下列问题中任何一个的最终结果,不要在问题的任何部分使用迭代。 vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343] (1)创建一个新的向量vecR,使其为vec的转置。

(2)创建一个新的向量vecB,使其为vec中的前半部分与后半部分对换的结果,这样vecB包含的元素为vec的后半部分紧接着vec的前半部分。

(3)创建一个新的向量vecS,使其包含vec中所有小于45的元素,且元素按照vec中的顺序排列。 (4)创建一个新的向量vec3R,使其从vec中从最后一个元素开始,并且间隔三个元素取一个元素,

5

湖 北 汽 车 工 业 学 院 《MATLAB及应用》实验指导书

直到第一个元素为止。

(5)创建一个新的向量vecN,使其包含vec中所有等于2或4的元素的索引值。

(6)创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素。

clear,clc

vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343]; vecR=vec';

disp('vecR=[]');disp(vecR) a=length(vec);

vecB=[vec(a/2+1:a) vec(1:a/2)]; disp('vecB=[]');disp(vecB) C=find(vec<45); vecS=vec(C);

disp('vecS=[]');disp(vecS) vec3R=vec(end:-4:1); disp('vec3R=[]');disp(vec3R) vecN=find(vec==2|vec==4); disp('vecN=[]');disp(vecN) d=vec(2:2:end);

vecG=d(find(d~=2&d~=4)); disp('vecG=[]');disp(vecG)

4. 给定以下3个向量:

nums1=[7 1 3 5 32 12 1 99 10 24];

nums2=[54 1 456 9 20 45 48 72 61 32 10 94 11]; nums3=[44 11 25 41 84 77 998 85 2 3 15];

编写脚本文件创建相应的3个向量:newNums1、newNums2和newNums3,分别包含以上3个向量中从第一元素开始且间隔取值的元素。

6

湖 北 汽 车 工 业 学 院 《MATLAB及应用》实验指导书

例如:

numsEX=[6 3 56 7 8 9 445 6 7 437 357 5 4 3] newsNumsEx=>[6 56 8 445 7 357 4] 注意:

不能直接将相关数值输入答案中,如果再命令提示符下输入:

>>newNumEx=[6 56 8 445 7 357 4] 将不能得分。 提示:

对于3个向量而言,其解决方法应当是一样的,只是变换向量名称而已。

clear,clc

nums1=[7 1 3 5 32 12 1 99 10 24];

nums2=[54 1 456 9 20 45 48 72 61 32 10 94 11]; nums3=[44 11 25 41 84 77 998 85 2 3 15]; newNums1=nums1(1:2:end) newNums2=nums2(1:2:end) newNums3=nums3(1:2:end)

思考题

1. MATLAB中,数组与矩阵在表示与应用上有哪些区别。

一维数组相当于向量,二维数组相当于矩阵.所以矩阵是数组的子集

数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法、乘方和除法的运算符前特别加了一个点。

矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的。但有两点要注意: (1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义都不同:矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;

(2)数与矩阵加减、矩阵除法在数学是没有意义的,在MATLAB中为简便起见,定义了这两类运算

7

湖 北 汽 车 工 业 学 院 《MATLAB及应用》实验指导书

实验04051002 MATLAB科学计算及绘图

操作成绩 报告成绩 1实验目的

1) 熟悉MATLAB所提供的常用数值计算的函数(方程(组)的求解、插值、拟合); 2) 掌握MATLAB二维图形绘制命令及其图形控制(plot、loglog、contour、polar等); 3) 熟悉MATLAB三维图形绘制命令及其图形控制(mesh、surf等)。

2实验内容

第四章

1. 有如下数据:

x y 1 1.00000 1.1 1.23368 1.2 1.55271 1.3 1.99372 1.4 2.61170 利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。

clear,clc

x=[1 1.1 1.2 1.3 1.4];

y=[1.00000 1.23368 1.55271 1.99372 2.61170]; scalar_x=x(1):0.05:x(end);

y_nearest=interp1(x,y,scalar_x,'nearest'); y_linear =interp1(x,y,scalar_x,'linear'); y_spline =interp1(x,y,scalar_x,'spline'); y_cubic =interp1(x,y,scalar_x,'cubic'); subplot(2,2,1),plot(x,y,'*'),hold on,

plot(scalar_x,y_nearest),title('method=nearest'); subplot(2,2,2),plot(x,y,'*'),hold on,

8