matlab矩阵_对矩阵的简单操作 | MatLab

这是之前写的存货......有一段历史了?

----正文----

生成矩阵

下面是几种矩阵的生成方法:

1、直接输入

    输入示例

    A=[1 2 3; 4 5 6;7 8 9]或

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

直接输入矩阵时:分号分格每行,空格或逗号分隔每个元素。

2、使用函数

zeros(m,n)生成一个元素全为0的m*n的矩阵

6c5b3a6bdc07495fef21a222e7426bb7.png

ones(m,n)生成一个元素全为1的m*n的矩阵
eye(n)生成一个n阶单位矩阵

25e153a6c9d6b6f26ce2cb1300cfff88.png

rand(m,n)生成一个元素在0和1之间均匀分布的m乘n阶随机矩阵
randn(m,n)生成一个零均值单位方差正态分布的m乘n阶随机矩阵

1b3043bccfc6ec7fdac30ab5a2d5bd7c.png

pascal(n)生成一个n阶帕斯卡矩阵
注:帕斯卡矩阵是把杨辉三角形放在矩阵里
magic(n)生成一个n阶魔方矩阵
注:魔方矩阵的每行,每列,包括对角线它们的和相等

9188d16dfff4b22dd992c66a8c13269c.png

注:仔细观察可以发现,当你所使用的函数并不给任何一个变量赋值时,它将会默认为变量ans赋值。

向量的生成

1.使用linspace函数

格式:y=linspace(a,b【,n】)

功能:产生一个行向量y,该向量把a和b之间的数n等分而得。

注:当n值缺省时,默认100等分。另:我用方头括号框住公式中可有可无的部分,实际输入时不要输入方头括号。

ce4dd5fbe89e6c3ed4ee5ae2f62437c6.png

注:所得到的结果没有一个含有小数部分时,那他们将会被表示为整数;当其中任何一个包括小数部分,那他们都会被表示为小数,一般默认的是short类型,精确到后4位。

2.与他有类似功能的增量语句

格式:var=[a:【s:】b]

其中a为初始,值b为中值值,s为(每一次的)增量,s=(b-a)/(s-1)。s可以省略,省略时默认为1。

607907ca559eeeeed5ad34ad90d97d55.png

3.使用logspace函数

格式:y=logspace(a,b【,n】)

作用:产生一个行向量y,该向量由n个10的a次方和10的b次方间的对数间隔点构成。当n的值未给定时,n默认为50。

//讲真的,我并不明白这个是干嘛用的。放一波原文让你感受一下:

logspace Logarithmically spaced vector.

    logspace(X1, X2) generates a row vector of 50 logarithmically

    equally spaced points between decades 10^X1 and 10^X2. If X2

    is pi, then the points are between 10^X1 and pi.

f0bb5b2a422524a885ef4ba992d0de99.png

注:列1~9只是告诉你这是一个行向量,但是表示时在中间换行了。

矩阵的结构操作

A(m,n)提取矩阵a的第m行第n列元素
A(:,n)提取矩阵a的第n列元素注:冒号表示该行或该列的全部元素
A(m1:m2,n1:n2)提取矩阵a的第m1行到第m2行和第n11列到第n2列的所有元素

d72448804c1a84b78edf59ddb72c3fc8.png

A(:)一个很长很长的列向量(网课里管他叫 长列向量),这个向量是把矩阵a的每一个列向量拼凑到一个列向量上

a4dcf69f966f34fc2d6060c052637504.png

reshape(A,m,n)当矩阵a的元素重组,形成m行n列的矩阵
注:顺便说一下,这个重组后的矩阵必须和重组前的矩阵所容纳的元素数量是相同的,也就是说,从矩阵a转化为矩阵b并没有元素的丢失,它们只是按照列的顺序重新排列在b上了了。

bb95de116ac6e6c3e7c0da465c0b8acd.png

repmat(A,m,n)将矩阵a复制m乘n块及新矩阵是由m乘n个a平铺而成的

04d916ba22b57e61a5490271c9f0f66b.png

triu(A)提取矩阵的上三角部分

96b404971029cb24960217c519198e5d.png

tril(A)提取矩阵的下三角部分

14b8d5acdd5e2a4898009af8d2eda09c.png

diag(A)提取矩阵的对角线上的元素

0cfd15e96014e9c81c696256b7a9d847.png

fliplr(A)将矩阵a左右翻转

f54a1347e1ddadff9dd70d7db31625d2.png

flipud(A)将矩阵A上下翻转

f45131ac261a50094edaf605155d8a10.png

rot90(A【,k】)将矩阵A整体逆时针旋转k*90度
若k取负数,则为顺时针旋转

f3e163feb2309852b1638bf8f210dd36.png

矩阵的增删变化

下以下展示的操作都是连续的,所以我不再展示原矩阵。

00ecfc2aaca9979c9a08f8fb8b9585ea.png

a5dfc1ddc89d00e5455a2246f864c5b9.png

1.给矩阵增加一列

f5ea6bfb9d350e4ea23eb5b983538424.png

2.给矩阵增加一行

e27237c448ee502317685bb22543b5eb.png

注意:添加对应行或列时,需要按照原矩阵的”规格“添加。

3.在矩阵的第二、三行之间新建一行

ce6d58fbbf256e0a1ac85a91c444ca3c.png

注:多么繁杂的操作,我也不知道会不会有更简单的,要是你找到了告诉我一下哈。

4.在矩阵中删除某一行

dd37ca8a8e18a935375cb857fa248fcc.png

注意:你没有办法以类似的方式删除某一个元素。

84b06e8cd63b9ab833695057c22f3ce1.png

矩阵的运算方法

1.矩阵的左乘和右乘

551620fe37a1e8ab3519b35180ff23c4.png

%注:B=round(rand(m,n)*z是一个有趣的生成随机矩阵的方法,具体的原理你可能已经在其他有求随机数需要的地方学习过了,不再详细叙述。

d8794ba7726bda81a24137e420a8b4a4.png

2.矩阵的加减

85be8388f290e67287d666aa1671d420.png

3.我之前说过的——诡异的群运算

这是由两个矩阵,各个相应位置的元素相乘,所得到的矩阵

5fdf5b58eeb464e380d6a6c593ce43bc.png

4.方阵的行列式和逆矩阵的计算

55c886d09d6fedbe127b1a50f8c828f5.png

5.矩阵的行最简形和矩阵的秩

6ab2c6eed3845830fb47990fb3235bde.png

由下面这样的一种特殊形式,我们所得到的jb变量,指的是矩阵中线性无关的列向量

db17a44d44a2730c040cdd0df8f873d6.png

6.方阵的特征值与特征向量

这东西还没学,我听不懂,如果有兴趣你可以自己看:

函数eig可以求得方阵的特征值和特征向量

调用格式为

d=eig(A)或[V,D]=eig(A)

其中d为列向量,其元素为矩阵a的特征值,矩阵d为矩阵a特征值所构成的对角阵,矩阵v的列向量为矩阵a的单位特征向量,它与D中的特征值一一对应

7.Matlab提供的更多针对矩阵的运算

//还没完?!放我去睡觉,我不想打字了

dot(A,B)矩阵的点乘积

6bac457e6a8a157d5d415806ebb141c6.png

cross(A,B)向量的叉乘积

611101875ec3157d7855bea1abc84d92.png

trace(A)矩阵的迹
注:就是对角线上各元素的值的和

9c5a4687f95da8c5b2b4286868a8471b.png

length(A)矩阵的行数和列数的最大值

6497160fb33cd73f0c291d3ce5bd4ad3.png

size(A)矩阵的行数和列数

ce56334553d345503d9c68ee1c522769.png

注:特殊情况我们说,cross用于向量的叉乘,但是,如果我们使用矩阵参与运算呢?下面是实际的结果:

26e610c8a97b1a83d2b4970fe330aeb0.png

为什么会产生这样的结果呢?或许下面会给你一些提示。

dcb2ca5ba62e9037ab2ae4d09c066df4.png

Ans:这是对应位置的列向量叉乘构成的矩阵。




最初于2019年11月10日 23:07:10编辑完毕。

后记:

一共在公众号内发布了2篇关于MatLab的入门教程,可能只够应付高校的(非相关专业的)数学课程(拓展)。关于MatLab的内容星期天不再更新。通过矩阵的转换求方程的解这个东西我已经忘完了……有时间星期天再复习一下。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值