matlab数值数组及其运算

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)运用MATLAB函数生成法 如rand,zeros,ones等 以上均为行数组,列数组转置即可
3.2.1 一维数组的创建
【例】函数法生成数组 >>a=ones(1,3) a=
111 >> rand('state',0) >> x=rand(1,5) a1 =
0.9501 0.2311 0.6068 >>a1=a' a2 =
设计数组和数组运算的目的: 使程序简单、易读;更接近数学公式 提高程序向量化程度,提高计算效率,节省系 统开销
3.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)')
最重要的一章
第三章 数值数组及其运算
数值数组和数组运算始终 是MATLAB的核心
3.1 数值运算的特点
数组:由一组实数或复数排成的长方阵列 (Array)
一维的“行”或“列” 二维的“矩形” 三维的“若干矩形的堆叠” 更高的任意维
3.1 数值运算的特点
数组运算: 无论对数组施加什么运算(包括函数),总认为 是对数组中每个元素平等的实施同样的操作
经典教科书的标识法
即指出是“第几行,第几列”的元素
优点:几何概念清楚,引述简单。(最常用)
“全下标”由两个下标组成:行下标,列下标
3.2.2 二维数组的创建
【例】标准数组产生的演示
ones(1,2) %产生长度为2的全1行数组 ans =
11 randn(‘state’,0)%把正态随机数发生器置0 A=randn(2,3)%产生2×3的正态随机阵 A=
-0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909 B=eye(3) %产生3×3的单位阵 B=
3.2.1一维数组的创建
【例】线性,对数生成法演示
b1=linspace(1,10,5)
b1 =
1.0000 3.2500 5.5000 10.0000
b2=logspace(0,3,4)
b2 =
1
10
100
7.7500 1000
3.2.1一维数组的创建
(3)逐个元素输入 x=[2 pi/2 sqrt(3) 3+5i]
x(3) = 0
%第三个元素赋值为0
x([1 4])=[1 1] %第一、四个元素都赋1
保证被赋值的子数组长度与送入的数组长度 相同
3.2.2 二维数组的创建
1.直接输入法 二维数组三要素:
整个数组必须以“[]”为首尾 数组行与行之间必须用“;”或回车隔离 数组元素必须用“,”或空格分隔
3.2.2 二维数组的创建
4.利用MATLAB函数创建特殊数组
表3.2-1,例3.2-5,上机验证 diag 产生对角形数组 eye 产生单位数组 magic 产生魔方数组 (以上三类数组不适用于高维,只适用于二维以下) ones 产生全1数组 zeros 产生全0数组 rand 产生均匀分布随机数组 randn 产生正态分布随机数组 randn(‘state’,0) %把正态随机数发生器置0
3.5000 + 1.0000i
“;”在“[]”内,是数组行分隔符
“;”作为指令结束符,不显示执行结果
3.2.2 二维数组的创建
2.数组编辑器创建
3.2.2 二维数组的创建
3.利用M文件创建和保存数组 对于经常需要调用的数组,尤其是比较大
而复杂的数组,值得为它专门建立一个 M文件
3.2.2 二维数组的创建
100 010 001
3.2.2 二维数组的创建
C=diag(A) %取A阵的对角元
C=
-0.4326
0.2877
D=diag(C) %利用一维数组生成对角阵等同于
指令D=diag(diag(A))
D=
-0.4326
0
0
0.2877
3.2.3 二维数组元素的标识和寻访
1.“全下标”标识(P113)
x=1:2:6
x= 135
x=0:-1:-5
x= 0 -1 -2 -3 -4 -5
3.2.1一维数组的创建
(2)线性(对数)采样
格式 x=linspace(a,b,n) a,b是第一个和最后一个元素,n是采样点
数 等价于x=a:(b-a)/(n-1):b 格式 x=logspace(a,b,n)
在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
C=
1.0000 5.4716 + 0.4177i 0.6909
0.7071 4.8244
1 1 1
0.4860
0.8913
补充:一维数组元素的寻访和赋值
Βιβλιοθήκη Baidu
(1)数组元素的寻访(Address)
x(3)
%寻访数组x的第三个元素
x([1 2 5]) %寻访数组x的第一、二、五个元素,组成子数组
x(1:3) %寻访前三个元素,组成子数组
x(3:end) %寻访从第三到最后的元素,组成子数组。
x(3:-1:1) %由前三个元素倒排构成子数组
x(find(x>0.5)) %由大于0.5的元素构成子数组
%先找到大于0.5的元素下标再寻访
x([1 2 3 4 4 3 2 1])%对元素可以重复寻访,使所得数组长 度允许大于原数组
注意对数组的寻访不改变原数组的值
补充:一维数组元素的寻访和赋值
(2)子数组的赋值(Assign)
3.2.1 一维数组的创建 (1)冒号生成
格式 x=a:inc:b a是第一个元素,inc是步长(缺省为1) 若(b-a)是inc的整数倍,则生成数组最后一
个元素等于b,否则小于b inc可取正数或负数。取正:a<b;取负:
a>b
3.2.1一维数组的创建
【例】冒号生成法演示
x=1:6
x= 123456
第一句定义自变量数组:0为起点,每隔0.1取一个点,直到1。得到 1×11的数组
第二句中,指数函数exp(-x)对x每个元素求值,结果也是1×11的数组 数组乘是两个数组对应元素相乘,得到y也是1×11的数组 连续函数必须在相应区间上采样才能进行数值计算
3.1 数值运算的特点
3.2 一维数组的创建和寻访
相关文档
最新文档