1. 从屏幕上输入矩阵A=[1 2 3;4 5 6;7 8 9] 回车
A=[1,2,3;4,5,6;7,8,9] 回车 观察输出结果。
2. 试用回车代替分号,观察输出结果。 3. 输入size(A),观察结果。
4. 输入矩阵B=[9,8,7;6,5,4;3,2,1];回车
输入矩阵C=[4,5,6;7,8,9;1,2,3];回车,然后分别键入A B C 回车观察结果。 5. 选择File|new 菜单中的M-file,输入B=[9 ,8,7;6,5,4;3,2,1];保存为B.M 文件,退出编辑环境。此时在工作环境中使用B 命令就可调出B 矩阵。 6. 再试着输入一些矩阵,矩阵中的元素可为任意数值表达式,但注意:
矩阵中各行各列的元素个数需分别相等,否则会给出出错信息。 7. 输入who 和whos 观察结果,了解其作用。 二.常用基本命令的使用
数据文件的存取训练:利用save 和load 指令可以方便地把当前工作空间的数据变量保 存为数据文件。接题一,输入:save a 回车,表示把当前工作空间的所有变量保存为a.mat 文件。输入save a A C 回车,表示把当前内存中的变量A、C 保存为a.mat 文件。类似的还有load 命令,实现保存数据变量的装载,执行clear 命令,然后运行load a 回车,观察工作空间的变化。save、load、clear 命令还有一些其他的应用格式,具体可参看帮助文件。 三.基本序列运算
1. 数组的加减乘除和乘方运算
2. 输入A=[1 2 3],B=[4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B,并用stem
画出A,B,C,D,E,F,G。再输入一些数组,进行类似运算。
3. 在命令窗口用plot 指令粗略描绘下列各函数的波形(其中对于连续信号可取时间间隔
为0.001,可参看下面的a 的实例来实现,数学函数MATLAB 实现参见附录)
?ta. f(t)?3?e 0?t?3
实现方法,在命令窗口执行一下指令,可简单描绘出函数曲线: t=0:.001:3; y=3-exp(-t); plot(t,y) b. f(t)?5e?t?3e?2t 0?t?3
?tc. f(t)?esin2?t 0?t?3
d. f(t)?sinat/at ? 2π < t < 2π (π在MATLAB 中用pi 来实现)
kf. f(k)?e 0?k?5
三.M 脚本文件编写初步
5
用M 文件编辑器编写脚本文件重新描绘上面函数波形。
6
实验二 数值数组创建、应用及可视化
[实验目的]
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 是采样总点数,该指令生成(1×n)数组。
二维数组是由实数或复数排列成矩形而构成的。从数据结构上看,矩形和二维数组没 有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵。二维数组的创建也可 采用直接输入法,或者利用构造M 文件创建和保存数组。
除此以外,还可以采用MATLAB 提供的标准函数生成我们需要的数组,诸如zeros、ones、 rand、eye、diag、magic 等,详请见附录。
一维数组元素的寻访和标识采用X(index)方法,只是要注意MATLAB 中第一个元素下 标index 是1,而不是C 语言中的0。二维数组元素的标识和寻访可分为“全下标”标识和 “单下标”标识,“全下标”标识,即指出是“第几行,第几列”的元素,如A(3,5)表示二 维数组A 的第三行第五列元素。该标识法的优点是几何概念清楚,引述简单,在MATLAB 的 寻址和赋值中最为常用。“单下标”标识,顾名思义就是只用一个下标来指明元素在数组中 的位置,首先对二维数组的所有元素进行“一维编号”。“一维编号”是指:先设想把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列”,然后自上往下对元素未知进行编号,其优点是简洁、方便,特别是如果碰到对二维数组进行诸如for 循环操作时可以
7
减少循环次数,提高编程效率。“全下标”标识和“单下标”标识可以通过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 状态 x=rand(1,5) %产生(1× 5) 的均布随机数组 x(3) %寻访数组x 的第三个元素。
x([1 2 5]) %寻访数组x 的第一、二、五个元素组成的子数组。 x(1:3) %寻访前三个元素组成的子数组
x(3:end) %寻访除前2 个元素外的全部其他元素。end 是最后一个元素的下标。 x(3:-1:1) %由前三个元素倒排构成的子数组 x(find(x>0.5)) %由大于0.5 的元素构成的子数组
x([1 2 3 4 4 3 2 1]) %对元素可以重复寻访,使所得数组长度允许大于原数组。 x(3) = 0 %把上例中的第三个元素重新赋值为0
x([1 4])=[1 1] %把当前x 数组的第一、四个元素都赋值为1 x[3]=[]; %空数组的赋值操作
8
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] %这指令用于创建二维数 %组C
M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16] %创建复数数组的另一种方法 CN=M_r+i*M_i %由实部、虚部数组构成复数数组
(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]; (3)仿照问题1 中方法找出数组A??元素。
(4)在命令窗口执行下面指令,体会二维数组的子数组寻访和赋值
??4?2024?A 中所有绝对值大于3 的 ???3?1135?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 列元素全赋为1 (5)运行指令
rand(‘state’,11),A=rand(3,10000);B=(A>0.5);C=2*B-1;
首先预测(C*C’)/100 的运行结果,然后再在机器上验证。(本方法提供了产 生通信等仿真中常需若干独立的双随机码的方法原型。) (6)在命令窗口执行下面指令,体味数组运算与矩阵运算的区别
clear;A=zeros(2,3);
A(:)=1:6; %全元素赋值法
A=A*(1+i) %运用标量与数组乘产生复数矩阵
A_A=A.' %数组转置,即非共轭转置,其中单引号实现转置功能 A_M=A' %矩阵转置,即共轭转置
二.编写如图所示波形的MATLAB 脚本文件,图中虚线为正弦波,要求它分别在?12及处22 9
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育MATLAB程序设计实验 (2)全文阅读和word下载服务。
相关推荐: