MATLAB向量与矩阵
我们怎么使用MATLAB去处理矩阵的相关操作?
向量,矩阵
一个m*n行的数组A:
其行标,列标都是从1开始。
行标从上到下递增;
列标从左到右递增。
创建数组变量的一般方法
var=expression
var为合法变量名;
expression为MATLAB合法表达式。
创建一维数组变量 :
第一种方法:使用方括号操作符 [ ]
如
a=[1 3 pi 3+5*i]
a=[1,3,pi,3+5*i]
第二种方法:使用冒号 : 操作符
基本语法 x=Start:Increment:End
Start表示新向量x的第一个元素
新向量x的最后一个元素不能大于End
Increment可正可负,且遵守正负规则,否则创建的是空向量
若Increment=1,可以间写为x=Start:End
第三种方法:利用函数linspace
基本语法 x=linspace(x1,x2,n)
该函数生成一个由n个元素组成的行向量
如:x=linspace(1,2,5)
第四种方法:利用函数logspace
列向量的创建:
使用方括号“[ ]”操作符,使用分号“;”分割行
关于取转置单引号的使用 ’ 当使用一个单引号时代表共轭转置,如果希望只是转置,那么使用 .’ 操作符。
第一种方法:使用方括号“ [ ] ”操作符:
数组元素在方括号中键入
行与行之间用分号间隔,也可以在分行处用回车键间隔
行内元素用空格或者逗号分隔
第二种方法 :命令函数
函数ones(生成全一矩阵),zeros(生成0矩阵)
reshape(重新定义矩阵形状)
reshape使用:
>>a=-4:4
>>b=reshape(a,3,3)
注: 数组元素排列顺序:从上到下排列。
通常的特殊函数还有:eye(单位矩阵)magic(魔方阵)rand(0~1之间均匀分布的随机矩阵)
randn(均值为0,方差为1的标准正态分布随机矩阵)
“help elmat”获得基本的矩阵生成和操作函数列表。
数组元素的标识与寻访
数组元素的标识
- 全下标标识 :注意MATLAB中使用小括号()寻访地址。
- 单下标标识:用一个下标来表明位置。对于二维数组看作一个按一维数组相接排成的长列。
- 两种“下标”标识的变换:sub2ind,ind2sub
当修改数组元素的值时,参考:
>>a=linspace(1,10,5);
>>a([1,2,3]) //访问前三个元素
>>a([end : -1 : end-2]) //访问后三个元素
>>a(1)=5 //单独赋值
>>a([2,5])=1 //整体赋值
>>a([1,2,5])=[1,2,5] //给1 2 5元素赋值
/* 二维数组的操作 */
>>a_2=zeros(2,4)
>>a_2(:)=1:8
>>a_2=([2 5 8]}
>>a_2(:,end) //见下方解释1)
>>a_2(:,end:-1:3) //见下方注释2)
>>a_2(:,[2 3])=ones(2) //见下方注释3)
关于二维数组中逗号的使用,在上面1)2)3)中,逗号都代表分割行与列
1)冒号代表全部,则1)中意为所有行,最后一列
2)所有行,倒数第一个开始到第三列
3)第二三列被1替代
空数组
有一维是0的数组即为空数组
空数组不占据存储空间
例如: a=[],b=ones(0,5)
空数组是全0空数组并非全0数组!
我们可以利用空数组做什么? 改变数组!
例如:
a=magic(4),a(:,2)=[]
今天的MATLAB到这里啦!水平有限,如果有错误欢迎大家指出!不胜感激~