许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  关于Matlab编程的一些小总结:高效技巧与常见坑点

关于Matlab编程的一些小总结:高效技巧与常见坑点

阅读数 13
点赞 0
article_banner

Matlab在线使用:http://octave-online.net/

一、矩阵的定义

1.直接定义

  1. A=[1,2,3;4,5,6]
    这里写图片描述
  2. A=[1:10]
    这里写图片描述
  3. A=[1:3,2:4]
    这里写图片描述
  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)
这里写图片描述

二、矩阵的 提取

  1. 如果矩阵是行向量或列向量,A(m)即提取A矩阵的第m个元素值
  2. A(m,:)即提取A矩阵的第m行的所有元素,返回的结果是一个行向量
  3. A(:,n)即提取A矩阵的第n列的所有元素,返回的结果是一个列向量
  4. A(a:b,c:d)即选择A矩阵的a-b行,c-d列,二者相交的部分即为提取出的部分
    这里写图片描述
  5. A(a,b)即提取A矩阵第a行第b列的元素值
  6. 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.矩阵和矩阵

四、操作函数

  1. size(A,1)表示A矩阵的行数,size(A,2)表示列数
  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行列数相同,然后比较每个位置上的数就行了。
  3. sum函数


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空