matlab作业第3章

合集下载

MATLAB3章程序设计

MATLAB3章程序设计
菜单操作 ( File New M-File ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 )
打开已有的 M 文件
菜单操作 ( File Open ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 ) 双击 M 文件
(2). windows记事本和word建立M文件
2013年8月13日7时49分
24
例题 function c=test(a,b) %主函数 c=test1(a,b)*test2(a,b); function c=test1(a,b) %子函数1 c=a+b; function c=test2(a,b) %子函数2 c=a-b;
子函数则只能在主函数文件中编辑
3.2 函数文件
•3.2.1 •3.2.2 •3.2.3 •3.2.4 •3.2.5 M文件分类 函数文件的基本结构 函数调用 全局变量和局部变量 子函数与局部函数
3.2.1 M文件的分类
1. 根据不同调用方式两类 ① Script:脚本文件/命令文件
② Function:函数文件
2. 命令文件 —
2013年8月13日7时49分
调用test4: >> a=[4 3 5;6 7 8;3 5 7;1 3 4]; >> test4(A) ans = 4.6667 >> global s ss >> ss ss = 56 >> s s= 12 21 15 8
23
3.2.5 子函数与局部函数
一个M文件可以包含多个函数,其中,一个是主函数,其他 是子函数。 主函数必须出现在最上方,其后可有若干子函数,子函数的 次序可随意调整。主函数和各子函数的工作空间都是彼此独 立的。 私有函数是主函数的一种,是private子目录中的函数。它们 只对父目录中的函数可见。 子函数只能为主函数或同一主函数下的其他的子函数所调用

matlab第三章MATLAB数值计算

matlab第三章MATLAB数值计算

min函数的用法和max完全相同。
例 分析下列程序的功能
x=[4 5 6;1 4 8]; y=[1 7 5;4 5 7]; p=max(x,y) ; p
分析:取两个2×3的二维数组x和y同一位置上的元素值
大者构成一个新矩阵p。
2 平均值和中值
求数据序列平均值的函数是mean,求数据序列中值
的函数是median。
4
累加和与累乘积
向量的累加和与累乘积
cumsum(X)
返回向量X累加和向量。 cumprod(X) 返回向量X累乘积向量。 矩阵的累加和与累乘积
cumsum(A)
返回一个矩阵,其第i列是A的第i列的累加和向量。
cumprod(A) 返回一个矩阵,其第i列是A的第i列的累乘积向量。 cumsum(A,dim) 当dim为1时,该函数等同于cumsum(A);当dim为2时,
(2) 对角阵
X = diag(v,k) 当v是n个元素的向量时,返回有第k个对角线的 n+abs(k)顺序的方阵,k = 0(可省略)代表主对角线, k > 0代表上方的次对角线, k < 0代表下方的次对角
y3=median(x,2); %按行方向,求矩阵的中值
y4=mean(x); y5=mean(x,1); %按列方向,求矩阵的平均值
y6=mean(x,2); %按行方向,求矩阵的平均值
3 求和与求积
向量的求和与求积
sum(X) 返回向量X各元素的和。 prod(X) 返回向量X各元素的乘积。
3.3 矩阵操作 3.3.1 矩阵的结构变换
(1) 转置
转置运算的操作符: ′ 求A的转置,运算表达式为 A′ 其中A可以是行向量、列向量和矩阵。 若矩阵中的元素为复数, 则′对矩阵元素做转置共轭; 若仅对矩阵中元素做转置,则 可用 .′操作符

最新matlab第三章课后部分答案

最新matlab第三章课后部分答案

习题三3-2 从键盘输入一个三位整数,将它反向输出。

如输入639,输出为936程序如下:m=input('请输入一个三位整数:');m1=fix(m/100);%求m的百位整数m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字m=m3*100+m2*10+m1%反向输出m3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。

其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:(1)分别用if语句和switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

程序如下:(1)if语句c=input('请输入成绩:');if c>=90&c<=100disp('A 成绩合理');elseif c>=80&c<=89disp('B 成绩合理');elseif c>=70&c<=79disp('C 成绩合理');elseif c>=60&c<=69disp('D 成绩合理');elseif c<60disp('E 成绩合理');elsedisp('成绩错误');end(2)switch语句c=input('请输入成绩:');switch fix(c)case num2cell(90:100)disp('A 成绩合理');case num2cell(80:89)disp('B 成绩合理');case num2cell(70:79)disp('C 成绩合理');case num2cell(60:69)disp('D 成绩合理');case num2cell(0:59)disp('E 成绩合理');otherwisedisp('成绩错误');end3-4 建立5*6矩阵,要求输出矩阵第N行元素。

matlab第3章

matlab第3章

例: 利用函数创建逻辑数组。 在命令窗输入:
判断是否为有限数, 有限数则为真
>>z=isfinite([5,inf,0.3]) 运行结果: z= 1
MATLAB程序设计
0
1
第3章数据类型
运算产生逻辑结果的函数
函数 操作 设值为真或假 数值类型转化为逻辑类型 逻辑运算 与、或 关系运算 测试运算
true、false logical &(and)、|(or)、~(not)、xor、any、 all &&、|| ==、~=、<、>、<=、>= is*、cellfun
五.判断数据类型 数据类型判断命令
命令 操作 显示数据类型 将x的数据类型赋给另一个变量 判断x是否为数值类型 判断x是否为引号中指定的数值类型 (包括其它数值类型)
whos x xtype=class(x) isnumeric(x) isa(x, 'integer')
isreal(x)
isnun(x)
如果长度不同,需要用空格来补充。
例: 创建字符串数组。 在命令窗输入:
补3个空格, 使长度相等
>>m=['Yanbian '; 'University'] 运行结果: m= Yanbian University
MATLAB程序设计
第3章数据类型
某个整数类型的变量只能与该整数类型或double类型的
变量进行算术运算,其结果仍为该类型的整数。 例: 整数类型的算术运算。 在命令窗输入: >>x=int16(2)*pi,class(x) 运行结果:
x=
6 ans= int16

matlab第三章课后题

matlab第三章课后题

(1).> a={1,2,3,4}a =[1] [2] [3] [4]结论这个是一种单元结构(2).卷积简单定义:卷积是分析数学中一种重要的运算。

设:f(x),g(x)是R1上的两个可积函数,作积分:可以证明,关于几乎所有的实数x,上述积分是存在的。

这样,随着x的不同取值,这个积分就定义了一个新函数h(x),称为函数f与g的卷积,记为h(x)=(f*g)(x)。

容易验证,(f * g)(x) = (g * f)(x),并且(f * g)(x)仍为可积函数。

这就是说,把卷积代替乘法,L1(R1)空间是一个代数,甚至是巴拿赫代数。

卷积与傅里叶变换有着密切的关系。

利用一点性质,即两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,能使傅里叶分析中许多问题的处理得到简化。

由卷积得到的函数f*g一般要比f和g都光滑。

特别当g为具有紧致集的光滑函数,f 为局部可积时,它们的卷积f * g也是光滑函数。

利用这一性质,对于任意的可积函数f,都可以简单地构造出一列逼近于f的光滑函数列fs,这种方法称为函数的光滑化或正则化。

卷积的概念还可以推广到数列、测度以及广义函数上去。

(3).% polynomial operationp1=[1 2 1]; %¶¨Òå¶àÏîʽp2=[1 1];length_of_p1=length(p1);length_of_p2=length(p2);if (length_of_p1==length_of_p2 ) % ÅжÏÁ½¸ö¶àÏîʽÊÇ·ñ³¤¶ÈÏàµÈp1_plus_p2=p1+p2; % ¶àÏîʽÏà¼Óp1_minus_p2=p1-p2; % ¶àÏîʽÏà¼õelseif length_of_p1<length_of_p2temp_p1=[zeros(length_of_p2-length_of_p1)p1];p1_plus_p2=temp_p1+p2;p1_minus_p2=temp_p1-p2;elsetemp_p2=[zeros(length_of_p1-length_of_p2)p2];p1_plus_p2=p1+temp_p2;p1_minus_p2=p1-temp_p2;endp1_multiply_p2=conv(p1,p2);p1_divide_p2=deconv(p1,p2);p1=poly2sym(p1)p2=poly2sym(p2)p1_plus_p2=poly2sym(p1_plus_p2)p1_minus_p2=poly2sym(p1_minus_p2)p1_multiply_p2=poly2sym(p1_multiply_p2)p1_divide_p2=poly2sym(p1_divide_p2)>>duoxiangship1 =x^2 + 2*x + 1p2 =x + 1p1_plus_p2 =x^2 + 3*x + 2p1_minus_p2 =x^2 + xp1_multiply_p2 =x^3 + 3*x^2 + 3*x + 1p1_divide_p2 =x + 1总结总是出错,也不知道错那啦,他说不符合matlab的语法我在书上照着模样敲得也错,没办法!解决了这个毛病原来一点点空格还会影响!真心对她弗拉!。

matlab第三章

matlab第三章

目录第三章分支语句和编程设计 (1)3.1 自上而下的编程方法简介 (1)3.3 关系运算符和逻辑运算符 (4)3.3.1 关系运算符 (4)3.3.2 小心==和~=运算符 (5)3.3.3 逻辑运算符 (6)例3.1 (7)3.3.4 逻辑函数 (7)测试3.1 (7)3.4 选择结构(分支语句) (8)3.4.1 if结构 (8)3.4.2 if结构举例 (9)例3.2 (9)例3.3 (12)3.4.3 关于if结构使用的注意事项 (13)例3.4 (14)3.4.4 switch结构 (15)3.4.5 try/catch结构的应用 (16)测试3.2 (17)3.5 附加的画图特性 (17)3.5.1 控制x,y轴绘图的上下限 (18)3.5.2 在同一坐标系内画出多个图象 (20)3.5.3 创建多个图象 (20)3.5.4 子图象 (21)3.5.5 对画线的增强控制 (22)3.5.6 文本字符串的高级控制 (22)3.5.7极坐标图象 (23)例3.5 (24)例3.6 (25)例3.7 (26)3.5.8 注释并保存图象 (28)测试3.3 (30)3.6 程序调试的进一步说明 (30)3.7 总结 (33)3.7.1 好的编程习惯的总结 (34)3.7.2 matlab总结 (34)3.8 练习 (34)3.1 (34)3.2 (34)3.3 (34)3.4 (35)3.5 (35)3.6 (35)3.7 (35)3.8 (35)3.9 (35)3.10 (36)3.11 (36)3.12 (36)3.13 (36)3.14 (37)第三章分支语句和编程设计在前面的章节中,我们开发了几个完全运转的MATLAB程序。

但是这些程序都十分简单,包括一系列的MATLAB语句,这些语句按照固定的顺序一个接一个的执行。

像这样的程序我们称之顺序结构程序。

它首先读取输入,然后运算得到所需结果,打印出结果,并退出。

matlab 第三章 数值数组及向量化运算

matlab 第三章 数值数组及向量化运算

第三章 数值数组及向量化运算
数组运算:无论对数组施加什么运算(包括函 数),总认为是对数组中每个元素平等的实 施同样的操作 • 设计数组和数组运算的目的:
– 使程序简单、易读;更接近数学公式 – 提高程序向量化程度,提高计算效率,节省系 统开销
第三章 数值数组及向量化运算 • 绘制函数 在0≤x≤1时的曲线 x=0:0.1:1 %定义自变量的采样点取值数组 y=x.*exp(-x)%利用数组运算计算各自变量采样点上的函数 值 plot(x,y),xlabel('x'),ylabel('y'),title('y=x* exp(-x)') %绘图
第三章 数值数组及向量化运算 2、对向量的元素进行赋值
>> %对向量的第三个元素赋值 >> A(3) = -3 A= 1 2 -3 4 5 6 7 8 >> %对向量中不存在的数据赋值 >> A(15) = -15 A= Columns 1 through 10 1 2 -3 4 5 6 7 8 Columns 11 through 15 0 0 0 0 -15
第三章 数值数组及向量化运算
3.2.3 索引
• 访问向量元素的结果是创建新的向量。 • 访问向量的元素直接给出元素在向量中的序号, 元素的序号不仅可以是单一的整数,还可以是 元素序号组成的向量,如例子2-8中的各种操 作。 • 关键字end在访问向量元素时,表示向量中最 后一个元素的序号。 • 访问向量元素时,序号的数值必须介于数值 1~end之间。
注意: MATLAB的矩阵元 素的排列以列元素 优先,这一点同 FORTRAN语言的二 维数组元素的排列 方法一致,与C语言 的二维数组元素的 排列不同,C语言的 二维数组元素排列 以行元素优先。

matlab第三章

matlab第三章
•假设条件:待估计面积的区域完全包含在一个 面积已知的方框中
•随机试验:在包围方框中随机抽取采样,事件A 定义为采样点落在面积待定的区域内
•试验过程:利用两个均匀随机数在面积已知的包 围区域内投点
精选课件
11
3.1.3 蒙特卡罗估计
• 产生500个均匀分布的随 机样点 X = rand(1,500); Y = rand(1,500); plot(x, y, ’k+’) axis square
•最后给出所求解的近似值,解的精度可用估计值 的标准误差来表示。
精选课件
5
3.1.1 相对频率
蒙特卡罗是基于概率的相对频率解释的。
•由基本的概率论可知,随机试验中实验结果无法 准确预测,而只能用统计的方法加以描述。
•随机试验的性能决定了试验结果。
•随机试验中事件可以是一个结果或者几个结果的 集合。
10-1
10-2
-3
10
-4
10
-3 -2 -1 0 1 2 3 4 5 6 7 8
精选课件
SNR in dB
36
目录
3.1 蒙特卡罗基本概念与应用 3.2 在通信系统中的应用—AWGN信道 3.3 平稳与遍历性过程 3.4 matlab随机数生成方法— rand语句 3.5 matlab随机数生成方法— random语句 3.6 matlab随机数生成方法— 针对特殊分
布语句
精选课件
21
3.2 在通信系统中的应用 —AWGN信道
• 方法:让N个符号通过系统(系统的计算机仿真模 型),并计算发送差错的个数Ne。如果在N次的符号
发送中有Ne次差错,则符号差错概率为
PE
Ne
• 问题:有偏或无偏?一致估N计?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3-1 编写程序,建立向量N=【1,2,3,4,5】,然后利用向量N产生下列向量: (1) 2,4,6,8,10 >> N=[1,2,3,4,5]; >> 2*N

ans = 2 4 6 8 10 (2)1/2,1,3/2,2,5/2 >> 1/4*N

ans = 0.2500 0.5000 0.7500 1.0000 1.2500 (3)1,1/2,1/3,1/4,1/5 >> 1./N

ans = 1.0000 0.5000 0.3333 0.2500 0.2000 (4)1,1/4,1/9,1/16,1/25 >> 1./(N.*N)

ans = 1.0000 0.2500 0.1111 0.0625 0.0400 3-2 从键盘输入一个三位整数,将它反向输入。如输入639,输出936. x=input('百位'); y=input('十位'); z=input('个位'); a=x*100+y*10+z t=x; x=z; z=t; a=x*100+y*10+z

>> f1 百位3 十位2 个位1

a = 321 a = 123 3-3输入一个百分制成绩,要求输出成绩等级A,B,C,D,E.其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下的为E。 A='A'; B='B'; C='C'; D='D'; E='E'; x=input('x='); if x>=90 disp (A); elseif x>=80 disp(B); elseif x>=70 sisp(C); elseif x>=60 disp(D); elseif x<60 disp(E); end

>> f1 x=92 A >> f1 x=65 D >> f1 x=32 E

3-6输入20个数,求其中最大数和最小数。要求分别用循环结构和调用Matlab的Max函数和min函数来实现。

B=input('input twenty numbers'); c=B(1); d=B(1); for i=1:20 c=max(c,B(i)); d=min(d,B(i)); end disp (c) disp (d)

>> f2 input twenty numbers[1 2 5 45 8 6 3 12 4 2 654 1 1 1 2 3 4 5 26 789] 789

1

3-7 0.30.30.3sin(0.3)ln22aaeeaya,当a取-3.0,-2.9,-2.8,……,2.8,2.9,3.0时,求各点的函数值。要求分别用顺序结构和循环结构实现。 for i=-3.0:0.1:3.0 a=i y=((exp(0.3*a)-exp(-0.3*a))/2)*(sin(a+0.3))+(log((0.3+a)/2))

end

>> f2 a = -3

y = 0.7388 + 3.1416i

a = -2.9000 y = 0.7696 + 3.1416i

a = -2.8000

y = 0.7871 + 3.1416i

a = -2.7000

y = 0.7913 + 3.1416i

a = -2.6000

y = 0.7822 + 3.1416i

a = -2.5000

y = 0.7602 + 3.1416i a = -2.4000

y = 0.7254 + 3.1416i

a = -2.3000

y = 0.6784 + 3.1416i

a = -2.2000

y = 0.6196 + 3.1416i

a = -2.1000

y = 0.5496 + 3.1416i

a = -2 y = 0.4688 + 3.1416i

a = -1.9000

y = 0.3780 + 3.1416i

a = -1.8000

y = 0.2775 + 3.1416i

a = -1.7000

y = 0.1680 + 3.1416i

a = -1.6000 y = 0.0497 + 3.1416i

a = -1.5000

y = -0.0771 + 3.1416i

a = -1.4000

y = -0.2124 + 3.1416i

a = -1.3000

y = -0.3566 + 3.1416i

a = -1.2000

y = -0.5104 + 3.1416i a = -1.1000

y = -0.6752 + 3.1416i

a = -1

y = -0.8536 + 3.1416i

a = -0.9000

y = -1.0497 + 3.1416i

a = -0.8000

y = -1.2701 + 3.1416i

a = -0.7000 y = -1.5271 + 3.1416i

a = -0.6000

y = -1.8436 + 3.1416i

a = -0.5000

y = -2.2727 + 3.1416i

a = -0.4000

y = -2.9837 + 3.1416i

a = -0.3000

y = -37.0245 a = -0.2000

y = -3.0017

a = -0.1000

y = -2.3085

a = 0

y = -1.8971

a = 0.1000

y = -1.5978

a = 0.2000 y = -1.3575

a = 0.3000

y = -1.1531

a = 0.4000

y = -0.9723

a = 0.5000

y = -0.8083

a = 0.6000 y = -0.6567

a = 0.7000

y = -0.5151

a = 0.8000

y = -0.3819

a = 0.9000

y = -0.2561

a = 1

y = -0.1374 a = 1.1000

y = -0.0255

a = 1.2000

y = 0.0792

a = 1.3000

y = 0.1766

a = 1.4000

y = 0.2663

a = 1.5000 y = 0.3478

a = 1.6000

y = 0.4206

a = 1.7000

y = 0.4841

a = 1.8000

y = 0.5379

a = 1.9000

y = 0.5815 a = 2

y = 0.6145

a = 2.1000

y = 0.6366

a = 2.2000

y = 0.6474

a = 2.3000

y = 0.6470

a = 2.4000 y = 0.6351

a = 2.5000

y = 0.6119

a = 2.6000

y = 0.5777

a = 2.7000

y = 0.5327

a = 2.8000

相关文档
最新文档