matlab 数值数组及其运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab 数值数组及其运算
数值数组(Numeric Array)和数组运算(Array Operation)是Matlab的核心运算内容
一、导言
二、一维数组 (向量)
三、二维数组(矩阵)
四、高维数组
五、MATLAB 的运算符
一、导言
1、数组的定义
数组是指一组实数或复数排成的长方阵列(Array)
一维的行或列 ? 向量
二位数组 ? 矩阵
三维的“若干矩阵的堆叠” ? 体
四维
更高维
2、数组运算
无论在数组上施加什么运算(+, -, * ,/,或函数等),该运算对数组中的每个元素都实施同样的操作。
Matlab的数组运算
使计算程序简短、易读
提高程序的向量化程度、提高计算效率
示例
x=0:0.1:1 %定义自变量的采样点取值数组
y=x.*exp(-x) %利用数组运算计算各自变量采样点上的函数值
plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)') %绘图
4 矩阵的索引或下标
矩阵 A 中,位于第 i 横列、第 j 直行的元素可表示为 A(i, j) ,i 与 j 即是此元素的下标(Subscript)或索引(Index)
MATLAB 中,所有矩阵的内部表示法都是以直行为主的一维向量
A(i, j) 和 A(i+(j-1)*m) 是完全一样的~m为矩阵A的列数
我们可以使用一维或二维下标来存取矩阵
矩阵的索引或下标
可以使用矩阵下标来进行矩阵的索引(Indexing)
A(4:5,2:3) -取出矩阵 A 的第四、五横列与二、三直行所形成的部份矩阵A([9 14; 10 15]) - 用一维下标的方式来达到同样目的
用冒号(:), 取出一整列或一整行
A(:, 5) -取出矩阵 A 的第五个直行
用 end 这个保留字来代表某一维度的最大值
A(:, end) - 矩阵 A 的最后一个直行
可以直接删除矩阵的某一整个横列或直行
A(2, :) = [] –删除A矩阵的第二列
A(:, [2 4 5]) = [] - 删除 A 矩阵的第二、四、五直行
二、一维数组
1 一维数组的创建
(1)逐个元素输入 []
Column
>> X = [ 1 ; 2 ; 3 ];
Row
>> Y = [ 1 , 2 , 3 ];
>> Y = [ 1 2 3 ];
逗号和分号的作用
?逗号和分号可作为指令间的分隔符,matlab允许多条语句在同一行出现。
?分号如果出现在指令后,屏幕上将不显示结果。
(2)冒号生成法:
start:Step:stop
%其中start为初始值,step为步长,stop为终止值。
Start: stop %implies step=1
>> Z = 1:-0.25:0
Z = [ 1 , 0.75 , 0.5 , 0.25 , 0 ]
(3)定数线性采样法
linspace( Initial , Final , # Points )
x= linspace(a,b,n)
% a,b是数组首末元素,n是采样总点数
% 等同于 x= a: (b-a)/(n-1):b
>> Z = linspace( 5 , 20 , 4 )
Z =
[ 5 , 10 , 15 , 20 ];
>> x=linspace(2,8,3)
x =
2 5 8
(4)定数对数采样法
logspace( Initial , Final , # Points )
x= logspace(a,b,n) %首点是10^a,末点是10^b
x=logspace(0,3,4)
x =
1 10 100 1000
2 一维数组的寻访
x=rand(1,5) %产生的均布随机数组
x =0.9501 0.2311 0.6068 0.4860 0.8913 x(3) %寻访数组x的第三个元素。
x([1 2 5]) %寻访数组x的第1、2、5个元素组成的子数组
x(1:3) %寻访前三个元素组成的子数组
x(3:end) %寻访除前2个元素外的全部其他元素
x(3:-1:1) %由前三个元素倒排构成的子数组
x(find(x>0.5)) %由大于0.5的元素构成的子数组
x([1 2 3 4 4 3 2 1]) %对元素可以重复寻访
X(0) 或 x(6) ?Error
子数组的赋值(Assign)
x(3) = 0 %把上例中的第三个元素重新赋值为0
x =
0.9501 0.2311 0 0.4860 0.8913
x([1 4])=[1 1] %把当前x数组的第一、四个元素都赋值为1。
x =
1.0000 0.2311 0 1.0000 0.8913
3 一维数组的操作
>> X = [ 1 ; 2 ; 3 ];
(+)
>> Z = X + 2
Z = [ 3 ; 4 ; 5 ]
(-)
(*)
>> Z = 2 * X
Z = [ 2 ; 4 ; 6 ]
(/)
>> Z = X / 2
Z = [ 0.5 ; 1 ; 1.5 ]
内积
>> X = [ 1 , 2 , 3 ]; >> Y = [ 1 ; 2 ; 3 ]; >> Z = X * Y Z = 14
平均值
>> X = rand(10);
>> Y = mean( X )
中值
>> Y = mean( X )