Matlab-讲义chap6-习题

合集下载

matlab习题二带答案

matlab习题二带答案

matlab习题二带答案Matlab习题二带答案Matlab是一种功能强大的数学软件,被广泛应用于科学计算、数据分析和工程设计等领域。

在学习Matlab的过程中,练习习题是提高技能的有效方法。

本文将介绍一些常见的Matlab习题,并提供相应的答案。

习题一:矩阵运算给定两个矩阵A和B,求它们的和、差、乘积和转置。

解答:```matlabA = [1 2; 3 4];B = [5 6; 7 8];sum = A + B; % 矩阵相加difference = A - B; % 矩阵相减product = A * B; % 矩阵相乘transposeA = A'; % A的转置transposeB = B'; % B的转置```习题二:函数绘图给定一个函数y = sin(x),在区间[0, 2π]上绘制它的图像,并给出坐标轴标签和标题。

解答:```matlabx = linspace(0, 2*pi, 100); % 在区间[0, 2π]上生成100个等间距的点y = sin(x); % 计算y值plot(x, y); % 绘制图像xlabel('x'); % x轴标签ylabel('y'); % y轴标签title('y = sin(x)'); % 图像标题```习题三:数据分析给定一个包含学生姓名和成绩的数据表,计算平均成绩、最高成绩和最低成绩,并输出成绩排名前三的学生姓名。

解答:```matlabdata = {'Alice', 85; 'Bob', 92; 'Cindy', 78; 'David', 96; 'Emily', 89}; % 学生姓名和成绩数据表grades = data(:, 2); % 提取成绩列average = mean(grades); % 计算平均成绩maximum = max(grades); % 计算最高成绩minimum = min(grades); % 计算最低成绩sorted_data = sortrows(data, -2); % 按成绩降序排序top3 = sorted_data(1:3, 1); % 提取前三名学生姓名disp(['平均成绩:', num2str(average)]);disp(['最高成绩:', num2str(maximum)]);disp(['最低成绩:', num2str(minimum)]);disp('成绩排名前三的学生:');disp(top3);```习题四:方程求解解方程组2x + y = 5和x - y = 1,求解x和y的值。

matlab知识题及答案解析

matlab知识题及答案解析

2. 用MATLAB 语句输入矩阵A 和B3.假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用magic(8)A =命令生成A 矩阵,用上述命令检验一下结果是不是正确。

4.用数值方法可以求出∑=++++++==6363622284212i i S ,试不采用循环的形式求出和式的数值解。

由于数值方法是采用double 形式进行计算的,难以保证有效位数字,所以结果不一定精确。

试采用运算的方法求该和式的精确值。

5.选择合适的步距绘制出下面的图形。

(1))/1sin(t ,其中)1,1(-∈t ; (2))tan(sin )sin(tan t t -,其中),(ππ-∈t6. 试绘制出二元函数2222)1(1)1(1),(yx yx y x f z ++++-==的三维图和三视图7. 试求出如下极限。

(1)xxxx 1)93(lim +∞→; (2)11lim0-+→→xy xy y x ; (3)22)()cos(1lim222200y x y x ey x y x +→→++-8. 已知参数方程⎩⎨⎧-==tt t y t x sin cos cos ln ,试求出x y d d 和3/22d d π=t x y9. 假设⎰-=xyt t e y x f 0d ),(2,试求222222y fy x f x f y x ∂∂+∂∂∂-∂∂ 10. 试求出下面的极限。

(1)⎥⎦⎤⎢⎣⎡-++-+-+-∞→1)2(1161141121lim 2222n n ; (2))131211(lim 2222ππππn n n n n n n ++++++++∞→ 11. 试求出以下的曲线积分。

(1)⎰+ls y x d )(22,l 为曲线)sin (cos t t t a x +=,)cos (sin t t t a y -=,)20(π≤≤t 。

(2)⎰-+++ly y y xe x e yx )dy 2(xy d )(33,其中l 为22222c y b x a =+正向上半椭圆。

MATLAB课后习题集附标准答案

MATLAB课后习题集附标准答案

第2章MATLAB概论1、与其他计算机语言相比较,MA TLAB语言突出的特点是什么?答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强.2、MA TLAB系统由那些部分组成?答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上.5、如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器.6、存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.8、如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成.在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上.9、在MA TLAB中有几种获得帮助的途径?答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器.(2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息.(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数.(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数.注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息.第3章 MATLAB 数值运算3.1在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 答:在Command Window 窗口输入操作:>> a=[5 7 3;4 9 1]3.2有几种建立矩阵的方法?各有什么优点? 答:(1)直接输入法,如a=[1 2 3 4],优点是输入方法方便简捷;(2)通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; (3)由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; (4)通过数据文件建立,该方法可以调用由其他软件产生数据.3.3在进行算术运算时,数组运算和矩阵运算各有什么要求?答:进行数组运算的两个数组必须有相同的尺寸.进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数.渗釤呛俨匀谔鱉调硯錦。

MATLAB-实用教程-课后习题标准答案

MATLAB-实用教程-课后习题标准答案

第二章1.计算复数3+4i与5-6i的乘积。

a=3+4ib=5-6ic=a*b2•构建结构体Students» 属性包含Name, age 和Email,数据包括{"Zhang", 18,"]}、「Wang,, 21, []}和{'『,[]』},构建后读取所有Name属性值,并且修改'Zhang,的Age 属性值为19.Students(l).Age=18Students(l).Email-1/'Students(2).Name=,Wang,Students(2).Age=21Students(2).Email=[]Students(3).Name=,Li,Students(3).Age=[]Students(3).Email=[]Student(l).Age(l)=19Stude nt.Age3.用满矩阵和稀疏矩阵存储方式分别构造下属矩阵:A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0]A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0]S=sparse(A)S=sparse([2,l,4]/[1,2/4L[1,1,1]A5)4.采用向量构造符得到向量[1,5,941],A=l:4:415.按水平和竖直方向分别合并下述两个矩阵:A=[l 0 0;11 0;0 0 1LB=[2 3 4;5 6 7;8 9 10] A=[10 0;110;0 0 1]B=[2 3 4;5 6 7;8 9 10]C=[A B]D=[A;B]6.分别删除第五题两个结果的第2行。

A=[10 0;110;0 0 1]B=[2 3 4;5 6 7;8 9 10]C=[A B]D=[A;B]C(2,:)=[]D(2/:)=[]7•分别将第5题两个结果的第2行最后3列的数值改为12 13]oA=[10 0;110;0 0 1]D=[A;B]C(2/4:6)=[ll 12 13]D(2/:)=[ll 12 13]8.分別查看第5题两个结果的各方向长度A=[10 0;110;0 0 1]B=[2 3 4;5 6 7;8 9 10]C=[A B]D=[A;B]a=size(C)b=size(D)9.分別判断pi是否为字符串和浮点数。

Chap6-信号与系统的时域和频域特性

Chap6-信号与系统的时域和频域特性

| H ( jω) | − − − 幅度响应(系统的增益)
H ( jω) =| H ( jω) | e j∠H ( jω) e j∠H ( jω) − − − 相位响应(系统的相移)
系统产生的相移将改变输入信号中各分量之间的相对相位关 系。即使系统的增益对所有频率都为常数,输入的时域特性 也可能产生很大的变化(频域相移不同,时域时移不同)。
∠H ( jω ) = −ωt0 τ (ω ) = t0 (signal delay )
相位特性的斜率(加负号)t0就是时移的大小, 这个时延称为群时延。 结论:
第6章时域和频域特性
zhuzwin@
15
非线性群时延对一个信号的影响(了解)

第6章时域和频域特性
全通系统的主值相位
展开后的相位(相位解缠)
8
2)对图像的影响
模重要? 还是相位重要?
| P( jω1, jω2 ) |
∠P( jω1, jω2 )
第6章时域和频域特性
zhuzwin@
9
模 : | P( jω1, jω2 ) | (正确)
相位 : 0 (错误)
模 :1(错误)
相位 : ∠P( jω1, jω2 ) (正确)
第6章时域和频域特性
e j∠X ( jω) − − − 相位频谱( Phase Spectrum)
第6章时域和频域特性
zhuzwin@
5
(1)相位对波形的影响
x(t
)
=
1+
1 2
cos(2π
t
+
φ1 )
+
cos(4π
t
+
φ2
)
+

matlab课后习题及答案

matlab课后习题及答案

第一章5题已知a=4.96,b=8.11,计算)ln(b a e b a +-的值。

解:clearclca=4.96;b=8.11;exp(a-b)/log(a+b)ans =0.01676题已知三角形的三边a=9.6,b=13.7,c=19.4,求三角形的面积。

提示:利用海伦公式area =))()((c s b s a s s ---计算,其中S=(A+B+C)/2.解:clearclca=9.6;b=13.7;c=19.4;s=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c))s =21.3500第二章8题已知S=1+2+2^2+2^3+……+2^63,求S 的值解:clearclcS=0;for i=0:1:63S=S+2^i;endSS =1.8447e+0199题分别用for 和while 循环结构编写程序,计算∑=-1001n 1n 2)(的值。

解:clearclcs=0;for n=1:100s=s+(2*n-1);endss =10000clearclcn=1;s=0;while n<=100s=s+(2*n-1);n=n+1;endss =10000第三章2题在同一坐标下绘制函数x ,,2x -,2x xsin(x)在()∏∈,0x 的曲线。

解:clearclcx=0:0.2:pi;y1=x;y2=x.^2;y3=-(x.^2);y4=x.*sin(x);plot(x,y1,'-',x,y2,'-',x,y3,'-',x,y4,'-')00.51 1.52 2.53-10-8-6-4-22468109题用不同的线型和颜色在同一坐标内绘制曲线y1=2e x 5.0 、y2=sin(2∏x )的图形。

解:clearclcx=0:0.01:pi;y1=2*exp(-0.5*x);y2=sin(2*pi*x);plot(x,y1,'b:',x,y2,'r--')00.51 1.52 2.53 3.5-1-0.50.511.52第四章1题对表达式f=3238641+++x x x 进行化简。

matlab教程习题答案

matlab教程习题答案MATLAB教程习题答案MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。

它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。

为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。

1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。

答案:```matlabsum = 0;for i = 2:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。

答案:```matlabmatrix = rand(10, 10);row_sum = sum(matrix, 2);col_sum = sum(matrix);disp(col_sum);```3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。

答案:```matlabfibonacci = zeros(1, 20);fibonacci(1) = 1;fibonacci(2) = 1;for i = 3:20fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);enddisp(fibonacci);```4. 编写一个MATLAB程序,计算一个正整数的阶乘。

答案:```matlabnum = input('请输入一个正整数:');factorial = 1;for i = 1:numfactorial = factorial * i;end```5. 编写一个MATLAB程序,求解一个二次方程的根。

假设二次方程的形式为ax^2 + bx + c = 0,其中a、b、c为用户输入的系数。

答案:```matlaba = input('请输入二次方程的系数a:');b = input('请输入二次方程的系数b:');c = input('请输入二次方程的系数c:');delta = b^2 - 4*a*c;if delta < 0disp('该二次方程无实根。

matlab教材习题答案

matlab教材习题答案Matlab是一种广泛应用于科学与工程领域的计算机编程语言和环境。

它具备强大的数值计算和数据可视化功能,被广泛用于数据分析、信号处理、图像处理、机器学习等领域。

对于初学者而言,掌握Matlab的基本语法和常用函数是非常重要的,而教材习题则是帮助学生巩固所学知识的重要资源。

本文将为大家提供一些Matlab教材习题的参考答案,以帮助读者更好地学习和应用Matlab。

1. 基本语法练习题1.1 计算并输出1到10的平方for i = 1:10fprintf('%d的平方是:%d\n', i, i^2);end1.2 计算并输出1到10的阶乘for i = 1:10fact = 1;for j = 1:ifact = fact * j;endfprintf('%d的阶乘是:%d\n', i, fact);end2. 数值计算练习题2.1 求解一元二次方程的根a = 1;b = -3;c = 2;delta = b^2 - 4*a*c;x1 = (-b + sqrt(delta))/(2*a);x2 = (-b - sqrt(delta))/(2*a);fprintf('一元二次方程的根为:%f, %f\n', x1, x2);2.2 求解线性方程组的解A = [1 2; 3 4];B = [5; 6];X = inv(A) * B;fprintf('线性方程组的解为:%f, %f\n', X(1), X(2));3. 数据处理练习题3.1 统计一个数组中的最大值、最小值和平均值data = [1, 2, 3, 4, 5];max_value = max(data);min_value = min(data);average_value = mean(data);fprintf('最大值:%f\n最小值:%f\n平均值:%f\n', max_value, min_value, average_value);3.2 对一个矩阵进行排序matrix = [4 2 3; 1 5 6; 9 8 7];sorted_matrix = sort(matrix);fprintf('排序后的矩阵为:\n');disp(sorted_matrix);4. 图像处理练习题4.1 读取并显示一张图片image = imread('image.jpg');imshow(image);4.2 对一张图片进行灰度化处理gray_image = rgb2gray(image);imshow(gray_image);5. 信号处理练习题5.1 生成并绘制正弦信号t = 0:0.01:2*pi;x = sin(t);plot(t, x);5.2 对一段音频信号进行傅里叶变换[y, fs] = audioread('audio.wav');Y = fft(y);plot(abs(Y));通过以上几个例子,我们可以看到Matlab的强大功能和灵活性。

Matlab试题及答案讲课稿

《Matlab 软件实训》一、 训练目的1、 熟悉Matlab 工具软件的开发环境2、 掌握Matlab 的一些常用命令3、 掌握Matlab/Simulink 建模仿真的方法二、 训练内容1、 利用命令进行各种相关数学计算;2、 编写M 文件实现各种相关数学计算;3、 利用Simulink 建模并仿真;三、 训练任务1、 解方程:Ax=B ,其中,A=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------5407395012818053,B=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-6120 本题解决思路:这是一个简单的数组运算,核心点在于数组的输入方法和一些基本的数组运算基础,本题中需要注意的是左除与右除的区别。

命令如下>> A=[-3 5 0 8;1 -8 2 -1;0 -5 9 3;-7 0 -4 5] A =-3 5 0 8 1 -8 2 -1 0 -5 9 3 -7 0 -4 5>> B=[0;2;-1;6] B =0 2 -1 6>> X=A\BX =-0.6386-0.4210-0.35290.02372、数值运算已知某班的5名学生的三门成绩如下:序号 1 2 3 4 5高数78 89 64 73 68外语83 77 80 78 70电路82 91 78 82 68试写出有关命令,先分别找出三门课的最高分及其学生序号,然后找出三门课总分的最高分及其学生序号。

本题解决思路:详细的分析题目,可以发现本题就是一个多组求最大值并输出的问题。

有三个核心点,第一点是求最大值问题。

第二点是如何将多组最大值问题合并在一个程序中解出,第三点是输入和输出的方法。

最大值我采用了MA TLAB中的max命令,其实也可以采用自己编写M文件的方法,但是程序越精简运行越快,我选择了自带命令。

第二个问题我采用了一个for和if配合的循环判断的语句。

第三个问题我采用disp输出,并用num2str将字符串转换输出。

MATLAB 课后部分答案

P77 第2章1、>> x=2;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)>> x=4;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)7、>> mat=rand(4,5);>> m=1;>> for i=1:2for j=1:5if mat(i,j)>0.3b(m)=mat(i,j);m=m+1;endendend>> b8、>> V=inv(A)>> A=rand(5,5);10、>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C=A*B??? Error using ==> mtimesInner matrix dimensions must agree.>> C=A.*BC =5 16 24 -26-18 -12 -15 72-2 -21 108 -5611、>> x=linspace(0,2*pi,125);>> y=cos((x).*(0.5+3*sin(x)./(1+x.^2)));>> plot(x,y)13、>> x=-2:0.1:2;y=-2:0.1:2;>> [X,Y]=meshgrid(x,y);>> Z=X.^2.*exp(-X.^2-Y.^2);>> mesh(Z)建立一个M函数文件mycos.m,程序如下:function y=mycos(x)clear allx=input('请输入x的值')y=1./((x-2).^2+0.1)+1./((x-3).^3+0.01)在命令窗口输入:mycosP123 第3章1、>> x=[446 714 950 1422 1634];y=[7.04 4.28 3.40 2.54 2.13];>> xi=500:500:1500;>> yi=interp1(x,y,xi,'linear')4、>> p=[3 4 7 2 9 12];>> roots(p)8、>> a=[2 4 9;4 2 4;9 4 18];>> [V,D]=eig(a) %V的列向量是相应的特征向量,对角阵D的对角元素为a的特征值10、>> p1=[-1 4 0];p2=[-1 -4 0];>> A=polyder(p1);B=polyder(p2);>> A1=roots(A);B1=roots(B);>> y=4*A1-4*B1-A1.^2-B1.^213、>> syms x y>> Ex=int(int(x.*12.*y.^2,y,0,x),x,0,1)>> Ey=int(int(y.*12.*y.^2,x,y,1),y,0,1)>> Exy=Ex.*Ey14、>> A=rand(4,4);>> [L,U]=lu(A)>> [Q,R]=qr(A)P183 第4章1、>> n=-2*pi:0.01:2*pi;>> N=12;x=cos(n*pi./6);>> X=fft(x,N)>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> y=conv(xn,hn)4、>> n=0:11;h=0:5;>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> M=length(xn);N=length(hn);>> L=pow2(nextpow2(M+N-1));>> Xk=fft(xn,L);Hk=fft(hn,L);>> Yk=Xk.*Hk;>> yn=ifft(Yk,L)5、>> num=[2 3 0];den=[1 0.4 1];>> [z,p,k]=tf2zp(num,den)6、>> num=[4 15.6 6 2.4 -6.4];den=[3 2.4 6.3 -11.4 6]; >> [z,p,k]=tf2zp(num,den)>> zplane(z,p)7、>> num=[18 0 0 0];den=[18 3 -4 -1];>> [r,p,k]=residuez(num,den)9、建立一个M函数文件,程序如下:clear allN=10;[z,p,k]=buttap(N);[A,B,C,D]=zp2ss(z,p,k);wc1=100;wc2=200;[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,wc1,wc2);[num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1);dimpulse(num2,den2)10、建立一个M函数文件,程序如下:clear allwp=100*2*pi;ws=200*2*pi;Rp=2;Rs=15;Fs=500;[N,Wc]=buttord(wp,ws,Rp,Rs,'s'); %选择滤波器的最小阶数[z,p,k]=buttap(N);[B,A]=zp2tf(z,p,k);[num,den]=bilinear(B,A,Fs); %模拟滤波器的传递函数转换为数字滤波器的传递函数freqz(num,den)11、建立一个M函数文件,程序如下:clear allN=48;w=[0.35,0.65];B=fir1(N,w,'bandpass'); %返回一个N阶的带通滤波器freqz(B) %绘制滤波器的频率响应曲线12、建立一个M函数文件,程序如下:clear allN=37;wc=0.3*pi;B=fir1(N,wc);freqz(B) %绘制滤波器的频率响应曲线13、建立一个M函数文件,程序如下:clear allN=55;F=[0:1/55:1];A=[ones(1,28),zeros(1,N-27)];B=fir2(N,F,A);freqz(B) %绘制滤波器的频率响应曲线15、建立一个M函数文件,程序如下:clear allwc=0.4*pi/(2*pi);N=12;[B,A]=butter(N,wc);%设计N阶截止频率为wc的Butterworth低通数字滤波器的传递函数模型m=dimpulse(B,A,101);stem(m,'.')P277 第6章2、建立一个M函数文件,程序如下:function [h,l]=huffmancode(P)if length(find(P<0))~=0,error('Not a prod.vector')endif abs(sum(P)-1)>10e-10error('Not a prod.vector')endn=length(P);for i=1:n-1for j=i:nif P(i)<=P(j)p=P(i);P(i)=P(j);P(j)=p;endendenddisp('概率分布'),PQ=P;m=zeros(n-1,n);for i=1:n-1[Q,l]=sort(Q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];Q=[Q(1)+Q(2),Q(3:n),1];endfor i=1:nc(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-1,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));endendfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));endl=sum(P.*ll); %计算平均码长在命令窗口中输入:>> P=[0.20 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06];>> [h,l]=huffmancode(P)3、建立一个M函数文件,程序如下:function[sqnr,a_quan,code]=u_pcm(a,n)% U_PCM 一个序列均匀的PCM编码.% n=量化级数的数目(偶数).% sqnr=输入信号量化噪声比(偶数)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

chap6 习题
1. 请分别写出用for 和while 循环语句计算100000021000000
02.02.02.012
.0+++==∑=Λi i K 的
程序。

此外,还请写出避免循环的数值、符号计算程序。

s1 =
1.2500
2. 编写一个函数M 文件,它的功能:没有输入量时,画出单位圆(见图p6-1);输入量是
大于2的自然数N 时,绘制正N 边形,图名应反映显示多边形的真实边数(见图p6-2);输入量是“非自然数”时,给出“出错提示”。

此外,函数M 文件应有H1行、帮助说明和程序编写人姓名。

图 p6-1
图 p6-2
function prob_solve602(n)
% prob_solve602(n) plot a circle or a polygon with n edges
% prob_solve602 plot a circle
% n 应为大于2的自然数
% By ZZY, 2006-2-15
if nargin==0
t=0:pi/100:2*pi;
x=exp(i*t);
str='Circle';
else
if (nargin~=0)&(n<=2)
error('输入量应是大于2的自然数')
end ;
if n-round(n)~=0 %检查非自然数
error('输入量应是大于2的自然数')
end ;
t=(0:n)/n*2*pi;
x=exp(i*t);
str=['Polygon with ', int2str(n),' edges']; % 合成字符串
end
plot(real(x),imag(x),'r','LineWidth',4)
title(str)
axis square image off
shg
3. 用泛函指令fminbnd 求|]sin[cos |)(x e x y x --=在x=0附近的极小值。

fminbnd 的第
一个输入量要求使用匿名函数表达。

x =
-0.8634
4. 在matlab 的 \toolbox\matlab\elmat\private 文件夹上有一个“烟圈矩阵”发生函数
smoke.m 。

运行指令smoke(3,0,'double') ,将生成一个3阶伪特征根矩阵如下
A =
-0.5000 + 0.8660i 1.0000 0
0 -0.5000 - 0.8660i
1.0000
1.0000 0 1.0000
现在的问题是:在MA TLAB 当前目录为\work 情况下,如何利用函数句柄调用smoke.m 函数,产生3阶伪特征根矩阵。

请写出相应的程序或操作步骤。

clear
b=pwd %获取当前目录名字符串
which('smoke') %检查在当前目录下能否看到smoke.m
b_d=b;
b_d(end-4:end)=[]; %在b字符串中去除最后的四个字符,即\work。

str=[b_d,'\toolbox\matlab\elmat\private'];
cd(str) %把smoke.m 所在目录设置为当前目录。

SM=@smoke; %创建smoke.m的函数句柄
cd(b) %使work恢复为当前目录
disp(' ')
A=SM(3,0,'double') %产生一个3阶“伪特征根”矩阵
disp(' ')
pwd %显示当前所在目录,以证实符合题意。

which('smoke') %再次检查在当前目录下能否看到smoke.m。

disp(' ')。

相关文档
最新文档