实验二 数值数组创建、应用及可视化答案.doc

上传人:re****.1 文档编号:542781884 上传时间:2024-02-09 格式:DOC 页数:10 大小:83.01KB
返回 下载 相关 举报
实验二 数值数组创建、应用及可视化答案.doc_第1页
第1页 / 共10页
实验二 数值数组创建、应用及可视化答案.doc_第2页
第2页 / 共10页
实验二 数值数组创建、应用及可视化答案.doc_第3页
第3页 / 共10页
实验二 数值数组创建、应用及可视化答案.doc_第4页
第4页 / 共10页
实验二 数值数组创建、应用及可视化答案.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《实验二 数值数组创建、应用及可视化答案.doc》由会员分享,可在线阅读,更多相关《实验二 数值数组创建、应用及可视化答案.doc(10页珍藏版)》请在金锄头文库上搜索。

1、注意:此题为本人自做,非标准答案,仅供参考。实验二 数值数组创建、应用及可视化实验目的1掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别。2掌握标准数组生成函数和数组构造技法。3进一步熟悉M 脚本文件编写的方法和技巧。实验原理数值数组和数组运算MATALB 核心内容,是MATLAB 最重要的一种内建数据类型。通常,数组是由一组实数或复数排成的长方阵列(Array ),它可以是一维的“行”或“列”,可以是二维的“矩形”,也可是三维的若同维矩形的堆叠,甚至是更高的任意维。而数组运算是指无论在数组上施加什么运算(加减乘除或函数),总认定那种运算对被运算数组中的每个元素(Element)平等地时

2、实施同样的操作。这使得计算程序简单、易读,使程序指令更接近教科书上的数学计算公式,并提高了程序的向量化程度,提高计算效率,节省计算机开销。一维数组的创建可采用逐个元素输入法,这是最简单,但又最通用的构造方法,如:x=2 pi/2 sqrt(3) 3+5i;另外有规律的产生数组可以采用冒号生成法,通用格式是x =a : inc : b,a 是数组的第一个元素,inc 是采样点之间的步长。若(b-a)是inc 的整数倍,则生成数组的最后一个元素是b,否则小于b。或者采用定数线性采样法,该法是在设定“总点数”下,均匀采样生成一维“行”数组。格式为x = linspace ( a , b , n ),

3、a、b 分别是生成数组的第一个各最后一个元素,n 是采样总点数,该指令生成(1n)数组。二维数组是由实数或复数排列成矩形而构成的。从数据结构上看,矩形和二维数组没有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵。二维数组的创建也可采用直接输入法,或者利用构造M 文件创建和保存数组。除此以外,还可以采用MATLAB 提供的标准函数生成我们需要的数组,诸如zeros、ones、rand、eye、diag、magic 等,详请见附录。一维数组元素的寻访和标识采用X(index)方法,只是要注意MATLAB 中第一个元素下标index 是1,而不是C 语言中的0。二维数组元素的标识和寻访可

4、分为“全下标”标识和“单下标”标识,“全下标”标识,即指出是“第几行,第几列”的元素,如A(3,5)表示二维数组A 的第三行第五列元素。该标识法的优点是几何概念清楚,引述简单,在MATLAB 的寻址和赋值中最为常用。“单下标”标识,顾名思义就是只用一个下标来指明元素在数组中的位置,首先对二维数组的所有元素进行“一维编号”。“一维编号”是指:先设想把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列”,然后自上往下对元素未知进行编号,其优点是简洁、方便,特别是如果碰到对二维数组进行诸如for 循环操作时可以减少循环次数,提高编程效率。“全下标”标识和“单下标”标识可以通过sub2ind

5、和ind2sub指令进行转换,详见帮助。另外,不论二维数组还是一维数组还可以采用“逻辑1”标识,这种方法常用于寻找数组中所有大于或小于某值的元素的问题中。比如X(abs(X)3)可以找出数组X 中所有绝对值大于3 的元素。另外还可以借助ones, zeros, rand, randn 和cat,repmat, reshape 等函数直接或间接构作高维数组,详见附录或MATLAB 帮助。Matlab 中的许多函数可以直接对任意维的数组直接运算,相当于对数组中的每个元素分别进行运算。比如Y=sin(X)可以直接得到与数组X 中每一个元素相对应的的正弦值,这大大简化了编程。可以执行数组运算的常用函数

6、已经列表于附录中,以供参考。但值得注意的是,虽然从外观形状和数据结构上看,二维数组和(数学中的)矩阵)没有区别,但矩阵作为一种变换或映射算子的体现,矩阵运算有着明确而严格的数学规则。数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。为了区别数组和矩阵运算,在易混淆的地方,数组运算在运算符前加一小黑点“.”以示区别,比如Y=A.*B,代表的示数组A 和数组B 对应元素相乘,而Y=A*B,则表示内维相同的矩阵A 和B 的乘积。由此也可看出,在执行数组与数组的运算时,参与运算的数组必须同维,运算所得结果也总与原数组同维。本节只涉及数组可视化方法

7、的简单实现。通常,对于离散数据可采用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) %寻访

8、数组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

9、= 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.

10、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

11、 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 个小数

12、点,表示换行续写)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(fi

13、nd(A3)C=A(find(A-3) B = 4 5C = -4 (4)在命令窗口执行下面指令,体会二维数组的子数组寻访和赋值A=zeros(2,4) %创建(2 4) 的全零数组A(:)=1:8 %全元素赋值方式s=2 3 5; %产生单下标数组行数组A(s) %由“单下标行数组”寻访产生A 元素组成的行数组Sa=10 20 30 %Sa 是长度为3 的“列数组”A(s)=Sa %单下标方式赋值A(:,2 3)=ones(2) %双下标赋值方式:把A 的第2、3 列元素全赋为1A=zeros(2,4) %创建(2 4) 的全零数组A(:)=1:8 %全元素赋值方式s=2 3 5; %产生单下标数组行数组A(s) %由“单下标行数组”寻访产生A 元素组成的行数组Sa=10 20 30 %Sa 是长度为3 的“列数组”A(s)=Sa %单下标方式赋值A(:,2 3)=ones(2) %双下标赋值方式:把A 的第2、3 列元素全赋为1 A = 0 0 0 0 0 0 0 0A = 1 3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号