数值数组的创建和寻访
一维数组的创建
1.递增/减型一维数组的创建
(1)冒号生成法 x=a:inc:b
(2)线性(或对数)定点法 x=linspace(a,b,n) 以a,b为左右端点,产生线性等间隔的(1×n)行数组 x=logspace(a,b,n) 以a,b为左右端点,产生对数等间隔的(1×n)行数组
2.其他类型一维数组的创建
(1)逐个元素输入法
(2)运用Matlab函数生成法
二维数组的创建
1.小规模数组的直接输入法
以“[]”作为其首尾;数组的行与行之间必须用分号“;”或回车分隔;数组元素必须由逗号“,”或空格分隔。
2.中规模数组的数组编辑器创建法
3.中规模数组的M文件创建法
%MyMatrix.m
AM=[101,102,103;...
201,202,203;...
301,302,303];
4.利用Matlab函数创建数组
指令 |
含义 |
diag |
产生对角数组(对高维不适用) |
eye |
产生单位数组(对高维不适用) |
magic |
产生魔方数组(对高维不适用) |
rand |
产生均匀分布随机数组 |
randn |
产生正态分布随机数组 |
ones |
产生全一数组 |
zeros |
产生全零数组 |
random |
生成各种分布随机数组 |
randsrc |
在指定字符集上生成均布随机数组 |
gallery |
产生各种用途的测试数组/矩阵 |
二维数组元素的标识和寻访
|
格式 |
使用说明 |
全下标法 |
A(r,c) |
A的指定行和指定列上的元素 |
A(r,:) |
A的指定行和全部列上的元素 | |
A(:,c) |
A的全部行和指定列上的元素 | |
单下标法 |
A(:) |
单下标全元素寻访,由A的各列按自左到右的次序,首尾相接而生成一维长列数组 |
A(s) |
单下标寻访,生成s指定的一维数组,s若是行数组,则A(s)就是长度相同的行数组,列数组相同 | |
逻辑标识法 |
A(L) |
逻辑1寻访,生成一维列数组:由与A同样大小的“逻辑数组”L中的“1”元素选出A的对应元素;按单下标次序排成长列 |
数组的操作
指令 |
含义 |
diag |
提取对角元素,或生成对角阵 |
repmat |
按指定的行数,列数铺放模块数组,以形成更大的数组 |
reshape |
在总元素不变的前提下,改变数组的行数和列数 |
flipud |
以数组“水平中线”为对称轴,交换上下对称位置上的数组元素 |
fliplr |
以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素 |
rot90 |
把数组逆时针旋转90度 |
数组运算规则
所有的运算都是对数组中的元素逐个起作用;
运算若是在两个数组间执行,那么这两个数组的维数大小相同;
Matlab中尽量使用数组运算/矩阵运算以提高执行速度
非数和空数组
1.非数
(1)性质
NaN参与运算所得的结果也是NaN,具有传递性
非数没有大小的概念,不能比较两个非数的大小
(2)判断
指令isnan逻辑判断,find进行标识
2.空数组
(1)空数组不具有传递性
(2)空数组与全零数组是两个不同的概念
(3)空数组确实存在
(4)二维空数组,用一对方括号表示;其他高维数组,只要数组某维长度为0或若干维长度均为0,则该数组就是空数组
(5)判断空数组的指令isempty
(6)空数组可用于子数组的删除和大数组的大小收缩
A=reshape(-4:5,2,5)
A=
-4 -2 0 2 4
-3 -1 1 3 5
A(:,[2,4])=[]
A=
-4 0 4
-3 1 5
关系操作与逻辑操作
评论