数值数组和数组运算综述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“单下标”与“全下标”转换关系:以(m×n)的二维 数组A为例,全下标元素位置是“第r行,第c列”,改 为单下标表示为a=(c-1)×m+r。 MATLAB有两个指令可实现此转换:
sub2ind ind2sub
2.1 引言
2.2 一维数组的创建和寻访
1. 一维数组的创建 逐个元素输入 x=[2 pi/2 sqrt(3) 冒号生成
3+5i]
格式 x=a:inc:b a是第一个元素,inc是步长(缺省为1) 若(b-a)是inc的整数倍,则生成数组最后一个元素 等于b,否则小于b inc可取正数或负数。取正:a<b;取负:a>b
优点:几何概念清楚,引述简单。(最常用) “全下标”由两个下标组成:行下标,列下标。 例如:A(2,5)
2.4 二维数组元素的标识
2.“单下标”标识
就是用一个下标来指明元素在数组中的位置 对二维数组元素进行“一维编号”
把二维数组所有列,按先左后右的次序,首尾相接排成“一 维长列”,然后自上往下编号
2.一维数组子数组的寻访和赋值
子数组的寻访(Address) 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])%对元素可以重复寻访,使所得
M_r = 1 4 2 5 3 6
M_i = 11 12 13 14 15 16 CN = 1.0000 +11.0000i 4.0000 +14.0000i
2.0000 +12.0000i 5.0000 +15.0000i
3.0000 +13.0000i 6.0000 +16.0000i
“,”在“[]”内,是数组元素分隔符 “,”作为指令结束符,显示执行结果
C = 1.0000 0.7071 5.4716 + 0.4177i 4.8244 0.6909 3.5000 + 1.0000i
“;”在“[]”内,是数组行分隔符 “;”作为指令结束符,不显示执行结果
2.3 二维数组的创建
复数数组的另一种输入方式 M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16] CN=M_r+i*M_i %由实部、虚部数组构成复数数组
从数据结构上看,矩阵和二维数组没有区别
当二维数组带有线性变换含义时,就是矩阵
2.3 二维数组的创建
1.直接输入法 二维数组三要素:
整个数组必须以“[]”为首尾
数组行与行之间必须用“;”或回车隔离 数组元素必须用“,”或空格分隔
2.3 二维数组的创建
在MATLAB环境下,用下面三条指令创建二维数组C 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
第二讲 数值数组及其运算
数值数组和数组运算始终 是MATLAB的核心
第二讲 数值数组及其运算
2.1 引言 2.2 一维数组的创建和寻访 2.3 二维数组的创建 2.4 二维数组元素的标识 2.5 二维数组的子数组寻访和赋值 2.6 执行数组运算的常用函数
第二讲 数值数组及其运算
2.7 数组运算和矩阵运算 2.8 标准数组生成函数和数组操作函数 2.9 数组构作技法综合 2.10 高维数组 2.11 “非数”和“空”数组 2.12 关系操作和逻辑操作
2.1 引言
绘制函数
y xe
x
在0≤x≤1时的曲线
x=0:0.1:1 %定义自变量的采样点取值数组 y=x.*exp(-x)%利用数组运算计算各自变量采样点上的函数值 plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)') %绘图 第一句定义自变量数组:0为起点,每隔0.1取一个点,直到1。得到 1×11的数组 第二句中,指数函数exp(-x)对x每个元素求值,结果也是1×11的数 组 数组乘是两个数组对应元素相乘,得到y也是1×11的数组 连续函数必须在相应区间上采样才能进行数值计算
数组长度允许大于原数组
2.2 一维数组的创建和寻访
子数组的赋值(Assign)
x(3) = 0 x([1 4])=[1 1]
%第三个元素赋值为0 %第一、四个元素都赋值为1
保证被赋值的子数组长度与送入的数组长度 相同
2.3 二维数组的创建
二维数组与矩阵
二维数组是由实数或复数排列成矩形构成的
2.3 二维数组的创建
2.数组编辑器创建 单击工作空间中的“新建”图标 3.利用M文件创建和保存数组 对于经常需要调用的数组,尤其是比较大 而复杂的数组,值得为它专门建立一个 M文件 4.利用MATLAB函数创建
2.4 二维数组元素的标识
1.“全下标”标识
经典教科书的标识法
即指出是“第几行,第几列”的元素
2.2 一维数组的创建和寻访
线性采样
格式
x=linspace(a,b,n)
a,b是第一个和最后一个元素,n是采样点数
ቤተ መጻሕፍቲ ባይዱ
生成1×n的数组
等价于x=a:(b-a)/(n-1):b
运用MATLAB函数生成法 如rand,zeros,ones等 以上均为行数组,列数组转置即可
2.2 一维数组的创建和寻访
2.1 引言
数组:由一组实数或复数排成的长方阵列 (Array)
一维的“行”或“列” 二维的“矩形” 三维的“若干矩形的堆叠” 更高的任意维
2.1 引言
数组运算:无论对数组施加什么运算(包 括函数),总认为是对数组中每个元素 平等的实施同样的操作 设计数组和数组运算的目的:
使程序简单、易读;更接近数学公式 提高程序向量化程度,提高计算效率,节省 系统开销