您的位置:首页 > 编程语言 > MATLAB

关于Matlab编程的一些小总结

2017-10-09 11:00 225 查看
Matlab在线使用:http://octave-online.net/

一、矩阵的定义

1.直接定义

A=[1,2,3;4,5,6]



A=[1:10]



A=[1:3,2:4]



A=[1:3;2:4](注意这样定义时要保证每一行的数目是相同的,比如A=[1:3;2:5]这样就是不合法的定义)



总结就是逗号表分隔,冒号表连续,分号表换行。

2.用zeros和ones定义

A=zeros(m,n) 表示定义一个m行*n列的矩阵,其中每个元素都是0;

A=zeros(m,n) +c 表示定义一个m行*n列的矩阵,其中每个元素都是c(c为常数);

A=ones(m,n) 表示定义一个m行*n列的矩阵,矩阵每个元素都是1;

A=ones(m,n) *c / A=ones(m,n).*c 表示定义一个m行*n列的矩阵,矩阵每个元素都是c;

A=ones(m,n) +c 表示定义一个m行*n列的矩阵,矩阵每个元素都是1+c;

3.用cat定义

C=cat(n,A,B) 其中n是常数,A和B为矩阵。

cat的作用是按照n的数值不同按不同的方式来连接A和B两个矩阵,其中n表示的是C矩阵的维数。

n=1时,将A、B矩阵按列连接。

n=2时,将A、B矩阵按行连接。

n=3时,c是三维数组,不能直接展示出来,所以只能单独提取某一维度来展示。

例:A = [1 2; 3 4];

B = [5 6; 7 8];

C=cat(1,A,B)



C=cat(2,A,B)



C=cat(3,A,B)



4.用repmat定义

B=repmat(A,m,n) 其中A是矩阵(A是常数也合法),m和n是常数。

repmat的作用是将A矩阵按mxn的方式组成新的矩阵B,即把A矩阵视为一个整体(所以说如果A是常数也是一样的),B矩阵是一个mxn的矩阵,每个元素都是A。

例:A=[1,2;3,4]

B=repmat(A,2,3)



二、矩阵的提取

如果矩阵是行向量或列向量,A(m)即提取A矩阵的第m个元素值

A(m,:)即提取A矩阵的第m行的所有元素,返回的结果是一个行向量

A(:,n)即提取A矩阵的第n列的所有元素,返回的结果是一个列向量

A(a:b,c:d)即选择A矩阵的a-b行,c-d列,二者相交的部分即为提取出的部分



A(a,b)即提取A矩阵第a行第b列的元素值

A(:,:)=A即提取整个A矩阵

三、运算符操作

主要的运算符号包括以下几种:

+ - * / \(反除) ^(指数)

.+ .- .* ./ .\ .^

运算顺序:指数>乘除>加减

注:

1.带点的操作符主要用于矩阵的运算,表示的是对于矩阵中每个元素都进行该操作,比如A.^2的意思就是A矩阵中每个元素都平方,得到的数覆盖原来的位置,矩阵的行列并不会改变。

2.反除对于实数来说就是字面意思 4\8=8/4。

3.对于矩阵之间的操作来说,乘法、除法和反除是有严格的位置关系的,A*B≠B*A,这在下面会细说。

4.对于整数来说2.0=2.=2,也就是说整数后面的.0不写0的话会自动识别成.0。但是如果”.”和运算符在一起时(比如.+,.-,.*等),会优先识别成运算符,比如说2.+A会识别成(2)(.+)(A)而不是(2.)(+)(A)。

1.矩阵和常数

例A=[1,2]

1. 加减乘

效果就是对矩阵每个数进行同等的操作

A+2=A.+2=2+A=2.+A=[3,4]

A-2=A.-2=[-1,0]

2-A=2.-A=[1,0]

A*2=A.*2=2*A=2.*A=[2,4]

2. 除与反除

A/2=A./2=2\A=2.\A=[0.5,1]

2/A在这里是非法的,因为2/A表示[x1,x2]*A=2,此时要求A是列向量。

2./A=A.\2=[2/1,2/2]=[2,1]

A\2在这里是合法的,因为A\2表示A*[x1,x2]’=2,此时要求A是行向量,解得A\2=[0,1]’。

3. 指数

A^2=A*A 要求A必须是方阵,在这里非法

A.^2=[1^2,2^2]=[1,4]

2^A 要求A必须是方阵

2.^A=[2^1,2^2]=[2,4]

2.矩阵和矩阵

四、操作函数

size(A,1)表示A矩阵的行数,size(A,2)表示列数

max函数

max(A) 如果A是行向量或列向量,则直接返回A中最大的数;如果A是二维矩阵,则将每一列的最大数提取出来,组成一个行向量。



max(A,3)对于A中每一个数都和3比,如果小于等于3,则这个位置的数就变成3,如果大于3则保持不变,返回的矩阵和A的维度是一样的。



max(A,B)这里分为几种情况

①A,B都为行向量或A,B都为列向量。

此时要求A,B的元素数量必须一致,返回的就是A,B每个对应位置的数比较的结果,较大的数保留。返回的矩阵和A(或B)的行列数是完全一致的。



②A,B一个为行向量,一个为列向量。

假设是1xn的行向量和mx1的列向量,那返回的矩阵就是一个mxn的矩阵。

比较的过程是这样,首先用1xn的行向量把这个mxn的矩阵填满,也就是说行向量连续重复m行。 然后用mx1的列向量每一行的数分别去和mxn的矩阵中对应行的数比较,大的保留。

例:A=[1,3];B=[2,4,3]’。

1x2的行向量和3x1的列向量,得到的就是一个3x2的矩阵C。

首先用A把C填满,可得C=[1,3;1,3;1,3];然后用B去比较,B的第一行是2,C的第一行是1和3,比较完的结果就是2和3;剩下几行以此类推,最终得到C=[2,3;4,4;3,3]。

③A,B中一个是二维矩阵,一个为行向量或者列向量。

如果其中一个是行向量,则要求二维矩阵的列数必须和行向量的列数相同;如果是列向量,则要求矩阵的行数必须和列向量的行数相同。

比较的过程与上面基本类似,用行向量或列向量填满,然后逐个比较每个位置上的数。

④A,B都是二维矩阵

很简单,要求A,B行列数相同,然后比较每个位置上的数就行了。

sum函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: