




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注意:此题为本人自做,非标准答案,仅供参考。实验二 数值数组创建、应用及可视化实验目的1掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别。2掌握标准数组生成函数和数组构造技法。3进一步熟悉M 脚本文件编写的方法和技巧。实验原理数值数组和数组运算MATALB 核心内容,是MATLAB 最重要的一种内建数据类型。通常,数组是由一组实数或复数排成的长方阵列(Array ),它可以是一维的“行”或“列”,可以是二维的“矩形”,也可是三维的若同维矩形的堆叠,甚至是更高的任意维。而数组运算是指无论在数组上施加什么运算(加减乘除或函数),总认定那种运算对被运算数组中的每个元素(Element)平等地时实施同样的操作。这使得计算程序简单、易读,使程序指令更接近教科书上的数学计算公式,并提高了程序的向量化程度,提高计算效率,节省计算机开销。一维数组的创建可采用逐个元素输入法,这是最简单,但又最通用的构造方法,如:x=2 pi/2 sqrt(3) 3+5i;另外有规律的产生数组可以采用冒号生成法,通用格式是x =a : inc : b,a 是数组的第一个元素,inc 是采样点之间的步长。若(b-a)是inc 的整数倍,则生成数组的最后一个元素是b,否则小于b。或者采用定数线性采样法,该法是在设定“总点数”下,均匀采样生成一维“行”数组。格式为x = linspace ( a , b , n ),a、b 分别是生成数组的第一个各最后一个元素,n 是采样总点数,该指令生成(1n)数组。二维数组是由实数或复数排列成矩形而构成的。从数据结构上看,矩形和二维数组没有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵。二维数组的创建也可采用直接输入法,或者利用构造M 文件创建和保存数组。除此以外,还可以采用MATLAB 提供的标准函数生成我们需要的数组,诸如zeros、ones、rand、eye、diag、magic 等,详请见附录。一维数组元素的寻访和标识采用X(index)方法,只是要注意MATLAB 中第一个元素下标index 是1,而不是C 语言中的0。二维数组元素的标识和寻访可分为“全下标”标识和“单下标”标识,“全下标”标识,即指出是“第几行,第几列”的元素,如A(3,5)表示二维数组A 的第三行第五列元素。该标识法的优点是几何概念清楚,引述简单,在MATLAB 的寻址和赋值中最为常用。“单下标”标识,顾名思义就是只用一个下标来指明元素在数组中的位置,首先对二维数组的所有元素进行“一维编号”。“一维编号”是指:先设想把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列”,然后自上往下对元素未知进行编号,其优点是简洁、方便,特别是如果碰到对二维数组进行诸如for 循环操作时可以减少循环次数,提高编程效率。“全下标”标识和“单下标”标识可以通过sub2ind 和ind2sub指令进行转换,详见帮助。另外,不论二维数组还是一维数组还可以采用“逻辑1”标识,这种方法常用于寻找数组中所有大于或小于某值的元素的问题中。比如X(abs(X)3)可以找出数组X 中所有绝对值大于3 的元素。另外还可以借助ones, zeros, rand, randn 和cat,repmat, reshape 等函数直接或间接构作高维数组,详见附录或MATLAB 帮助。Matlab 中的许多函数可以直接对任意维的数组直接运算,相当于对数组中的每个元素分别进行运算。比如Y=sin(X)可以直接得到与数组X 中每一个元素相对应的的正弦值,这大大简化了编程。可以执行数组运算的常用函数已经列表于附录中,以供参考。但值得注意的是,虽然从外观形状和数据结构上看,二维数组和(数学中的)矩阵)没有区别,但矩阵作为一种变换或映射算子的体现,矩阵运算有着明确而严格的数学规则。数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。为了区别数组和矩阵运算,在易混淆的地方,数组运算在运算符前加一小黑点“.”以示区别,比如Y=A.*B,代表的示数组A 和数组B 对应元素相乘,而Y=A*B,则表示内维相同的矩阵A 和B 的乘积。由此也可看出,在执行数组与数组的运算时,参与运算的数组必须同维,运算所得结果也总与原数组同维。本节只涉及数组可视化方法的简单实现。通常,对于离散数据可采用stem 命令或者使用plot 绘点的方法,而对于连续函数可直接采用plot 指令来实现。实验内容一数组的创建和寻访1一维数组在命令窗口执行下面指令,观察输出结果,体味数组创建和寻访方法,%号后面的为注释,不用输入。rand(state,0) %把均匀分布伪随机发生器置为0 状态rand(state,0) x=rand(1,5) %产生(1 5) 的均布随机数组x=rand(1,5) x = 0.0579 0.3529 0.8132 0.0099 0.1389 x(3) %寻访数组x 的第三个元素。a=x(3) a = 0.8132 x(1 2 5) %寻访数组x 的第一、二、五个元素组成的子数组。b=x(1 2 5) b = 0.0579 0.3529 0.1389 x(1:3) %寻访前三个元素组成的子数组c=x(1:3) c = 0.0579 0.3529 0.8132 x(3:end) %寻访除前2 个元素外的全部其他元素。end 是最后一个元素的下标。d=x(3:end) d = 0.8132 0.0099 0.1389 x(3:-1:1) %由前三个元素倒排构成的子数组f=x(3:-1:1) f = 0.8132 0.3529 0.0579 x(find(x0.5) %由大于0.5 的元素构成的子数组g=x(find(x0.5) g = 0.8132 x(1 2 3 4 4 3 2 1) %对元素可以重复寻访,使所得数组长度允许大于原数组。h=x(1 2 3 4 4 3 2 1) h = Columns 1 through 6 0.0579 0.3529 0.8132 0.0099 0.0099 0.8132 Columns 7 through 8 0.3529 0.0579 x(3) = 0 %把上例中的第三个元素重新赋值为0x(3) = 0 x = 0.0579 0.3529 0 0.0099 0.1389 x(1 4)=1 1 %把当前x 数组的第一、四个元素都赋值为1x(1 4)=1 1 x = 1.0000 0.3529 0 1.0000 0.1389 %空数组的赋值操作a= a = 2二维数组(1)在命令窗口执行下面指令,观察输出结果a=2.7358; b=33/79; %这两条指令分别给变量 a ,b 赋值。C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i %这指令用于创建二维数%组CM_r=1,2,3;4,5,6,M_i=11,12,13;14,15,16 %创建复数数组的另一种方法CN=M_r+i*M_i %由实部、虚部数组构成复数数组a=2.7358; b=33/79;C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i M_r=1,2,3;4,5,6,M_i=11,12,13;14,15,16 CN=M_r+i*M_i C = 1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000 + 1.0000iM_r = 1 2 3 4 5 6M_i = 11 12 13 14 15 16CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i (2)利用M 文件创建和保存下面的数组(分号后面是一个空格后加3 个小数点,表示换行续写)AM=101,102,103,104,105,106,107,108,109;.201,202,203,204,205,206,207,208,209;.301,302,303,304,305,306,307,308,309;AM=101,102,103,104,105,106,107,108,109;.201,202,203,204,205,206,207,208,209;.301,302,303,304,305,306,307,308,309; (3)仿照问题1 中方法找出数组A 中所有绝对值大于3 的元素。A=-4,-2,0,2,4;-3,-1,1,3,5;B=A(find(A3)C=A(find(A0.5);C=2*B-1;首先预测(C*C)/100 的运行结果,然后再在机器上验证。(本方法提供了产生通信等仿真中常需若干独立的双随机码的方法原型。)rand(state,11)A=rand(3,10000);B=(A0.5);C=2*B-1;(C*C)/100 ans = 100.0000 0.8600 -0.4800 0.8600 100.0000 -0.1800 -0.4800 -0.1800 100.0000 (6)在命令窗口执行下面指令,体味数组运算与矩阵运算的区别clear;A=zeros(2,3);A(:)=1:6; %全元素赋值法A=A*(1+i) %运用标量与数组乘产生复数矩阵A_A=A. %数组转置,即非共轭转置,其中单引号实现转置功能A_M=A %矩阵转置,即共轭转置clear;A=zeros(2,3);A(:)=1:6; %全元素赋值法A=A*(1+i) %运用标量与数组乘产生复数矩阵A_A=A. %数组转置,即非共轭转置,其中单引号实现转置功能A_M=A %矩阵转置,即共轭转置 A = 1.0000 + 1.0000i 3.0000 + 3.0000i 5.0000 + 5.0000i 2.0000 + 2.0000i 4.0000 + 4.0000i 6.0000 + 6.0000iA_A = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000iA_M = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i 二编写如图所示波形的MATLAB 脚本文件,图中虚线为正弦波,要求它分别在及处削顶。图1可能用到的额外指令: find、hold on、hold off、 legend,具体使用方法使用help指令名来解答。clc; clear all; clo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古鄂尔多斯西四旗2022-2023学年高二下学期期末联考英语试卷(原卷版)
- 2025-2026学年辽宁省沈阳市康平县七年级(上)月考历史试卷(一)(含答案)
- 兄弟合作建房协议合同
- 公积金贷款授权协议书
- 仪器代理协议合同模板
- 社交APP内容创作激励创新创业项目商业计划书
- 汽车制造服务创新创业项目商业计划书
- 宠物健康追溯系统创新创业项目商业计划书
- 职业女装专卖店行业跨境出海项目商业计划书
- 老年功能饮料行业跨境出海项目商业计划书
- 建设银行笔试题目及答案
- 宜宾五粮液股份有限公司2025年上半年校园招聘(253人)笔试参考题库附带答案详解
- 经鼻高流量湿化氧疗(HFNC)的临床应用与护理
- 安全生产文明施工措施费用台账
- 解码国家安全知到智慧树章节测试课后答案2024年秋国际关系学院
- 输液反应处理及报告流程
- T-CALC 007-2025 重症监护病房成人患者人文关怀规范
- 示踪剂技术服务合同7篇
- 储能站施工组织设计施工技术方案(技术标)
- 诊所地址变更申请书
- 钢板桩支护施工方案完整版
评论
0/150
提交评论