【MATLAB】矩阵元素及其基本运算

矩阵元素的引用

矩阵元素的引用方式:①A是一个矩阵,A(3,2)表示第三行第二列的元素。

②矩阵元素按照列来存储,先存储第一列元素,在存储第二列元素,直到最后。第一列第一个元素为1号元素,第一列第二个元素为2号元素,以此类推。A(3)

转换函数:①sub2ind(S,i,j)将矩阵中指定元素的行、列转换成存储的序号。S:组成矩阵的行数和列数的矩阵向量size(A)或[3,3](表示3行3列矩阵)i:行向量;j:列向量。i和j可以是矩阵。

ind2sub(S,D):D:序号。返回值是矩阵,表示行下表和列下标。

A(i,:)表示第i行全部元素

A(:,j):表示第j列全部元素

A(i:i+m,k:k+m)表示第i~i+m行内且在k~k+m列中的元素

A(i:i+m)表示第i~i+m行的全部元素

end运算符表示某一维的末尾元素下标。

改变矩阵的形状:reshape(A,m,n):A要改变形状的矩阵;m改变后的行数;n改变后的列数。注意:reshape()函数只改变行数和列数,不改变存储顺序。

A(:)表示将每列元素堆叠起来,组成列向量。相当于reshape(A,6,1)。

MATLAB基本运算

基本算术运算

加、减、乘、除

注意:MATLAB算术运算是在矩阵意义下进行的。单个数据的算术运算只是矩阵运算的一种特例。

加减操作时要求矩阵的维数相同。乘法运算要求A的列数与B的行数相等。运算规则参考《线性代数》这门课。

除法运算:

这里重点说一下除法运算。除法运算包含左除、右除。左除、右除就相当于除数矩阵和被除数矩阵。

假如A是非奇异方阵**(非奇异矩阵,即行列式不为0的矩阵,矩阵满秩,矩阵可逆,向量组线性无关。非奇异矩阵可以对线性空间做一个同等维度的线性变换,这个过程是可逆的,即可以由变换后的线性空间恢复原空间。)**,B/A相当于B*inv(A)、A\B相当于inv(A)*B

inv(A)是求逆矩阵

对于含有标量的运算,两种结果相同。

比如:

>> 3/4

ans =

    0.7500

>> 4\3

ans =

    0.7500

其中一个是矩阵时也一样。

乘方运算:

A*a:A是矩阵,a是标量。

点运算(.*、./、.\和.^):

点乘、点右除、点左除、点乘方。

两个矩阵进行点运算要求两个矩阵的对应元素进行相关运算。要求两矩阵同型。下面给出例子:

>> x = 0.1:0.3:1

x =

    0.1000    0.4000    0.7000    1.0000

>> y = sin(x)*cos(x)
错误使用  * 
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
 
>> y = sin(x).*cos(x)

y =

    0.0993    0.3587    0.4927    0.4546

关系运算(小于、大于等):

>> A = [24,35,13;22,63,23;39,47,80]

A =

    24    35    13
    22    63    23
    39    47    80

>> p = rem(A,2)

p =

     0     1     1
     0     1     1
     1     1     0

>> p == 2

ans =

  3×3 logical 数组

   0   0   0
   0   0   0
   0   0   0

>> p == 0

ans =

  3×3 logical 数组

   1   0   0
   1   0   0
   0   0   1

rem(x,y):求整除x/y的余数

逻辑运算符(与、或、非)

算术运算符、关系运算符、逻辑运算符中,算术运算符的优先级最高、逻辑运算符优先级最低。逻辑非运算是单运算符,优先级比双目运算符高。

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB矩阵是其核心数据结构之一,用于执行各种线性和非线性的数学运算。对于不同维度的矩阵MATLAB提供了丰富的操作和运算。以下是一些常见的矩阵运算及其适用场景: 1. **一维向量和二维矩阵**: - 向量和标量的运算:向量可以直接与标量进行加减乘除运算,得到的结果是一个扩展的向量或矩阵。 - 矩阵矩阵相加减:相同维度的矩阵才能相加减,结果矩阵具有相同的维度和大小。 2. **矩阵乘法**(Matrix Multiplication): - **内积(dot product)**:两个向量的点积操作,返回一个标量。 - **矩阵乘法(matrix multiplication)**:如果一个矩阵是另一个矩阵的转置且列数匹配,可以相乘,结果是第一个矩阵的行数乘第二个矩阵的列数。对于一般情况,只有当第一个矩阵的列数等于第二个矩阵的行数时,矩阵乘法才可能进行。 3. **矩阵元素操作**: - **数组索引**:通过行和列的索引来访问或修改特定元素,例如 `A(i,j)`。 - **广播**:当对不同维度的矩阵进行运算时,MATLAB会自动调整较小矩阵的尺寸以匹配较大矩阵的维度。 4. **转置(Transpose)**: - `A.'` 或 `transpose(A)`:将矩阵的行变为列,列变为行。 5. **矩阵分解**: - **LU分解**(`[L,U]=lu(A)`):将矩阵分解为下三角矩阵L和上三角矩阵U。 - **SVD分解**(`[U,S,V]=svd(A)`):奇异值分解,分解为三个矩阵,U是左奇异矩阵,S是对角矩阵,V是右奇异矩阵。 6. **卷积(Convolution)**: - 对于多维矩阵MATLAB提供`conv2`函数用于二维卷积。 相关问题: 1. MATLAB的广播机制如何应用于矩阵运算? 2. 如何在MATLAB使用LU分解解决线性方程组? 3. SVD分解在哪些机器学习任务被广泛应用?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值