MATLAB基础知识零基础到入门(第三期 矩阵和向量)

第三部分 矩阵和向量

3.1 基础内容

  1. 创建简单行向量
    ①:直接使用中括号和空格或者逗号与元素组合成行向量赋值给变量。
    在这里插入图片描述
    ②如果行向量中的元素值等间隔,可以使用首尾元素以冒号间隔来给变量赋值。
    在这里插入图片描述
    此外还可以这样使用:
    在这里插入图片描述
    在中间加入":2",可以规定向量中元素的间隔为2。

linspace函数创建一个线性间隔的向量;linspace(x,y,n)创建一个包含从x到y的n个值的向量。如果省略n,默认值为100点。例如,下面创建了一个向量,它有5个值,线性分布在3和15之间,包括3和15:
在这里插入图片描述
类似地,logspace函数创建一个对数间隔的向量;logspace(x,y,n)创建一个包含从10的x次方到10的y次方的n个值的向量。如果省略n,默认值是50分。例如,logspace(1、4、4)创建一个有四个元素的向量,以对数的方式在10和10的四次方也就是10000之间间隔,或者换句话说,10,100,1000和10000。
在这里插入图片描述
④矢量变量也可以使用现有变量创建。例如,这里创建了一个新向量,它首先包含所有来自nv的值,然后是所有来自ls的值:
在这里插入图片描述

  1. 引用和修改向量中元素的方法,以下图中的向量newvac为例:
    在这里插入图片描述

①直接用向量名加元素的位置

>> newvac(4)
ans =
   4

②用向量名和要引用的元素的起始位置夹冒号

>> newvac(3:5)
ans =
     3     4     5

③任何向量都可以用于另一个向量的索引,而不仅仅是使用冒号操作符创建的向量。索引不需要是连续的。例如,下面的代码将获得向量 newvec的第1个、第6个和第5个元素:

>> newvec([1 6 5])
ans =
1 6 5

④通过引用还不存在的索引,也可以扩展vector。例如,下面的代码创建了一个有三个元素的vector。然后给第4个元素赋值,将向量扩展为4个元素。

>> rv = [3 55 11]
rv =
3 55 11
>> rv(4) = 2
rv =
3 55 11 2

如果vector的末尾与指定元素之间有间隙,则填充0。例如,下面的代码再次扩展了变量rv:

>> rv(6) = 13
rv =
3 55 11 2 0 13
  • 创建列向量
    ①创建列向量的一种方法是显式地将值放在方括号中,用分号(而不是逗号或空格)分隔:
    在这里插入图片描述
    ②没有直接使用冒号操作符来获取列向量的方法。但是,使用任何方法创建的任何行向量都可以转置为列向量。一般来说,矩阵的转置是一个新矩阵,其中的行和列是交换的。对于向量,行向量的转置结果是列向量,而列向量的转置结果是行向量。在MATLAB中,撇号(或单引号)内置为转置运算符。
    在这里插入图片描述

3.2 创建矩阵变量

  • 1、创建矩阵变量只是对创建行和列向量变量的概括。也就是说,行中的值用空格或逗号分隔,不同的行用分号分隔。例如,矩阵变量mat是通过显式输入值创建的:
    在这里插入图片描述

  • 2、用冒号和每行等间隔元素的起始值创建矩阵:
    在这里插入图片描述

  • 3、随机数矩阵可以用rand函数创建。
    在这里插入图片描述

  • 4、相反,如果传递两个参数,它们将按顺序指定行数和列数。
    在这里插入图片描述

  • 5、随机整数矩阵可以用randi生成。
    在这里插入图片描述
    -6、 MATLAB也有几个创建特殊矩阵的函数。例如,zeros函数创建一个全为0的矩阵,而ones函数创建一个全为1的矩阵。和rand一样,可以传递一个参数(即行数和列数),也可以传递两个参数(首先是行数,然后是列数)。
    在这里插入图片描述
    注意,函数中没有能只产生元素2,10抑或53,只有0和1!

3.3 矩阵变量中元素的引用和修改

  • 1、要引用矩阵元素,行下标和列下标在括号中给出(总是先行后列)。例如,这会创建矩阵变量mat,然后引用mat的第二行、第三列中的值:在这里插入图片描述
  • 这叫做下标索引;它使用行下标和列下标。也可以引用一个矩阵的子集。例如,这指的是第一和第二行,第二和第三列:
    在这里插入图片描述
  • 2、对行下标使用一个冒号表示所有行,不管有多少行,而对列下标使用冒号表示所有列。例如,这指的是第一行中的所有列,换句话说,就是整个第一行:
    在这里插入图片描述
  • 3、整个行或列也可以更改。例如,下面的代码将整个第二行替换为使用冒号操作符获得的向量的值。在这里插入图片描述
  • 4、矩阵长度和维度的测定:利用MATLAB中的lengthsize函数来求向量和矩阵的维数。length函数的作用是:返回vector容器中元素的个数。函数的作用是:返回一个向量或矩阵的行数和列数。
    在这里插入图片描述
  • 5、MATLAB还有一个函数numel,它返回任意数组(向量或矩阵)中的元素总数:在这里插入图片描述
  • 6.end的使用。
    ①代表最后一个元素:
    在这里插入图片描述
    ②代表最后一行元素:
    在这里插入图片描述
  • 7、改变向量或矩阵的维度的函数:除了转置运算符之外,MATLAB还有几个内置函数可以改变矩阵(在许多情况下是向量)的维度或配置,包括reshape、fliplr、flipud、flip和rot90。
  • reshape函数:在这里插入图片描述在这里插入图片描述
  • 有几个用于翻转数组的函数。fliplr函数从左到右翻转矩阵(换句话说,最左边的列、第一列、成为最后一列),flipud函数向上翻转到向下。在这里插入图片描述
  • rot90函数将矩阵逆时针旋转90度,因此,例如,右上角的值将变成左上角,最后一列将成为第一行。在这里插入图片描述
  • 函数repmat可以用来创建一个矩阵;repmat(mat,m,n)创建一个更大的矩阵,由矩阵mat作为元素组成一个m*n的大矩阵。
    在这里插入图片描述
    在这里插入图片描述
  • 函数repelem按照指定的维度从矩阵中复制每个元素:
    在这里插入图片描述
  • 8、可以使用空方括号创建空向量(不存储值的向量):
    在这里插入图片描述
  • 空向量也可以用来删除向量中的元素。例如,要删除vector中的第三个元素,则将空vector赋给它:在这里插入图片描述
  • 向量的子集也可以被删除。例如:在这里插入图片描述
  • 不能从矩阵中移除单个元素,因为矩阵必须在每一行中都有相同数量的元素。在这里插入图片描述
    但整行或整列可以从矩阵中移除。例如,删除第二列:

在这里插入图片描述


版权声明:本文为qq_45658846原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。