MATLAB基础知识1

1.数组和矩阵
矩阵是特殊的数组,数组分为五类,空数组A=[];标量A=[3];一维行数组A=[1 2 3]或A=[1,2,3]
一维列数组A=[1;2;3];二维数组,如a=rand(6,6)即为66的数组,值为随机且在0-1之间;多维数组由多个二维数组组成,如a=rand(3,4,3)即3行4列,有3个这样的平面
2.向量
生成方式一:行向量可以用空格或者逗号隔开,列向量可以直接用分号或者回车进行分隔,clc为清屏,x’即x的转置。
生成方式二:x=初始值:[步长]:终值。步长可省略,默认为1
生成方式三:x=linspace(初始值,终止值,个数),如果省略个数,则默认为100个个数。
生成方式四:x=logspace(初值,终值,个数),不过是以10为底的初值,终值。
3.二维数组
生产方式一:空格或逗号区分同一行的不同元素,分号或回车区分不同行元素
生产方式二:函数生成:ones(2,4),2行4列里面元素都为1,zeros(3,4)3行4列里面元素都为0,eye(3,4)3行4列,主对角数为1,其余为0,rand(3,4)3行4列值分布在0-1之间,randn(3,4)3行4列,生成标准正态分布的伪随机数,均值为0,方差为1,randi(max,3,4)3行4列,生成整数,数值分布在1-max,或者randi([min,imax],3,4)整数数值在min到max之间,3行4列。
4.size()函数
d=size(数组名),一个返回值则为行向量,表示为当前数组的大小,[m,n]=size(数组名),返回值为2个为m为行向量,n为列向量。
5.length(数组名)函数:返回数组当中维度较大的数,空数组为0,标量为1。
6.numel(数组名)函数,返回数组中元素的总个数。如果m行n列,则总个数为m
n。
7.双下标索引,magic(m)函数生成一个m行m列魔方数组,行和列和相等。a(3,4)即引用a数组中第3行第4列的数。Matlab下标从1开始算起。
8.单下标索引,指定时按照列优先排序(顺着列往下走),如a=[1,2;3,4;5,6],a(3)=5。
9.双下标转化为单下标索引,方法:单下标索引=sub2ind(size,m,n),size为数组大小,m为行数,n为列数,即将数组中m行n列中的值转化为单索引。
10.单下标索引转为双下标索引,[行,列]=ind2sub(数组大小,单下标索引)
11.cat函数,数组扩展:扩展结果=cat(标识,数组1,数组2…)标识为1或2,标识1表示为列排,按照列方向排,必须具有相同的列,标识为2,按照行方向排,必须具有相同的行。
12.vertcat()函数,即垂直数组,扩展结果=vertcat(数组1,数组2),即从垂直方向上扩展数组,相当于cat(1,组合数组)。vertical即垂直的意思。要求列数相同。
13.horzcat函数,即水平方向,扩展结果=horzcat(数组1,数组2),即从水平方向上进行连接,相当于cat(2,数组1,数组2),要求得有相同的行数。
14.repmat函数,即块操作,数组B=repmat(数组A,m,n),即重复数组A m行n列操作。
15.blkdiag()函数,数组D=blkdiag(数组1,数组2),以对角线进行拼接,以数组1作为左上角,数组2作为右下角,然后在其他地方补0。也可以对多个数组进行拼接。
16.kron函数,数组3=kron(数组1,数组2),得到的结构和数组1行数和列数一样,数组3里面的每一个元素和数组2结构一样,值等于对应数组1的元素乘以对应数组2然后得到的值。
17.索引扩展:直接指定当前数组外的一个位置,并对其进行赋值,确保数组以最小代价完成扩展。即通过索引去进行数组扩展的一种方式。如a=[0,0,0;0,0,0;0,0,0],a(2,4)=9,则a变为
a=[0,0,0,0;0,0,0,9;0,0,0,0]。
18.罗列序号裁剪(数组裁剪):直接将需要保留的序号罗列出来。裁剪结果数组=原数组(保留的行,保留的列)。如b=a({1 2 3],[2 3 4]),即保留数组b的第1,2,3行与第2,3,4列,可以打乱顺序,可以是b=a({1 2 3],[5 2 4])。
19.冒号区间裁剪:(数组裁剪)
方式一:区间方式 m:n,m为初始值,n为终止值,如b=a(1:3,4:5),即b保留a的第一行到第3行,第4列到第5列。
方式二:冒号等差数列,m:k:n,m表示行或列的初始值,n表示行或列的终止值,k表示增加的行数或列数。如b=a(1:3:9,2:3:9),即b保留a的第1,4,7行第2,5,8列的元素。等差方式可以跟区间进行组合进行裁剪。
方式三:冒号全部,冒号:即当前位置取所有的值。如b=a(3:5,:)表示取a的第3行到第5行,取所有的列。冒号全部可以跟冒号等差数列以及区间方式进行组合使用。
20.删除数组整行整列:
方式一:数组(要删除的行,:)=[],如:a([1:3],:)=[],即删除了数组a的第一到第3行。
方式二:数组(:,要删除的列)=[],如行操作相同。可以两者进行 结合来求取特定的块。
21.数组的转置:
数组元素为实数的情况:
方式一:操作符 ’ 或 .’
方式二:函数transpose() 或 ctranspose(),在进行复杂运算时用函数来转置更不容易引起误差,在简单运算中可以直接使用操作符。
数组元素包含复数的情况:
方式一:非共轭转置 .’ 或 transpose(),特点:直接实现行和列的转置
方式二:共轭转置 ‘ 或 ctranspose(),特点:不止实现行和列的转置,将符号也变了,若为+,则符号变为- 。
生成复数的形式,如a=rand(3,4)+rand(3,4)i。
22.数组翻转:
方式一:上下翻转:结果数组2=flipud(数组1),即第一行与最后一行交换,以此类推。
方式二:左右翻转:结果函数2=fliplr(数组1), 即第一列与最后一列进行交换,以此类推。
方式三:filp()函数,filpim()已经被filp()替代了。
1)结果数组=filp(数组1,1),即行翻转,如只有一个参数,则默认为1.
2)结果数组=filp(数组1,2),即列翻转。
方式四:rot90()函数,结果数组=rot90(数组1,k),即将数组1进行逆时针旋转90
k度,若省略k,则默认k=1。若k=-1,则顺时针旋转90度。若k=2,则可以理解为先逆时针旋转90度,再逆时针旋转90度。
23.数组尺寸调整:
结果数组=reshape(数组1,m,n),将数组1调整为m行n列的新数组。注意:调整前后数组大小(个数)不变,即调整前mn,调整后也为mn,调整前后单下标(列)索引保持不变,matlab中数组排序方向为列优先排序。
24.基本运算:
数组与标量的运算:
结果数组=数组1+标量,则先将标量扩展为当前数组1大小的数组,元素全为标量,然后对应元素进行相加。减法也是一样的,乘法除法也是一样的。如b=a+5,a,b均为数组。
乘方运算:
1)正整数,结果数组=数组^2,即b=aa,要求a为方阵。其实数组相乘要求第一个数组的列与第二个数组的行应该相等。
2)负整数,结果数组=数组^(-1),即计算数组的逆矩阵。
3)小数,结果数组=数组(0.25),即结果数组4=数组。
数组与数组之间的运算:
加减法:即数组对应元素之间相加减。加减法运算的数组应该具有相同的行和列。
乘法:a
b,要求a的列数等于b的行数。
除法:A/B表示Ainv(B)或Apinv(B),inv是逆矩阵,pinv是伪逆矩阵。
A\B表示inv(A)*B或pinv(A)*B。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值