matlab基础篇(一)

 matlab对大小写敏感,首字母必须为字母,命名最长长度为63

1.计算语法

  •  2^{3.5*1.7}
2^(3.5*1.7)

  • e^{\sin10}  不是   e^sin(10)

而是

exp(sin(10))
  •  ln在matlab中表示为log,ln10用matlab语句表示为log10
  • π用pi表示
  • sinπ,sin2π分别表示为
sinpi(1)
sinpi(2)
  • 5%2可以表示为5/2或者2\5。(记忆方式,斜杠偏向哪个数,哪个数就是被除数)

  • 科学计数法表示:如3*10^{8},可以表示为3e8,(e可以换成E,d,D) 

  • rem(x,y)与x符号一致。mod(x,y)与y的符号一致。

matlab基础篇(一)_第1张图片

 2.matlab软件使用技巧

  • ctrl+c可以强制停止matlab正在运行的程序
  • 在命令行按上下可以查看快捷显示运行过的语句
  • 命令行输入clc清空窗口指令,输入clear清空工作区的所有变量
  • 在命令行输入脚本名可以执行脚本
  • whos查看现有的变量和类型
  • format compact命令可以在窗口输入时没有多余的空格;fomat loose可以取消这个操作
  • format long可以使浮点数输出更多位的小数
  • 若一条命令太长,可以在这条命令的第一行行末输入...,然后换行继续输入后面的命令
  • 了解函数功能的5 种方式
  1. help 函数名:了解某种函数的功能表
  2. help elfum:了解多种内置函数的功能
  3. 在matlab软件右上方的搜索框也可进行搜索函数名来对函数进行了解,比help展示的要更为详细
  4. 输入函数名,再按f1可进入matlab官方解释文档了解函数
  5. 点击命令行前面的fx可以寻找函数进行了解
  • 命令行输入脚本的前几个字母再按tab键会弹出选择框进行选择,可以自动补全脚本名

3.数据类型

  • 单引号输入cahr类型,如'apple'为char类型;双引号输入string类型,"apple"为字符串类型
  • inf为正无穷,-inf为负无穷

4.函数/符号/数据操作

生成随机数

1. rand(n,m)  

若只有一个参数n,则表示生成元素处于(0,1)间的n阶矩阵

若有两个参数n和m,则表示生成元素处于(0,1)间的n行m列的矩阵

2. randi(a,b,c)

  • 若a为一个列表[x,y]

表示生成元素大小为[x,y]之间的b行c列矩阵。(若没有参数c,则矩阵为b阶矩阵)

  • 若a为一个数

表示生成元素大小为[1,a]之间的b行c列矩阵。(若没有参数c,则矩阵为b阶矩阵)

旋转/翻转矩阵

  • flipud(m):把矩阵m按照横向对称轴进行上下翻转
  • fliplr(m):把矩阵m按照竖向对称轴进行左右翻转
  • flip(m)
  1. 如果m为行向量那么进行左右翻转,列向量则进行上下翻转
  2. 如果m为矩阵,那么只会将m的每列单独进行列向量的翻转。
  • rot90(m):把矩阵逆时针旋转90°

min(m):取m每列的最小值

min(m'):取m每行的最小值

prod(m):求m每列的乘积

prod(m'):求m每行的乘积

cumsum(m):每一列单独进行逐渐累加

cumsum(m'):每一行单独进行逐渐累加

cumprod(m):每一列单独进行逐渐累乘

cumprod(m'):每一行单独进行逐渐累乘

cummax(m):每一列单独遍历寻找当前最大值(意思是,比如第一列进行遍历时,第一行最大值是?继续遍历到第一列第二行的数,最大值是?继续遍历到第一列的第三行的数,目前最大的数是?......)

cummax(m'):每一行单独寻找目前最大值

cummin(m):每一列单独遍历寻找当前最小值

cummin(m'):每一行单独遍历寻找当前最小值

  • repmat(A,x,y):以矩阵为单位进行重复,重复x行,y列
  • repelem(A,x,y):以矩阵A的每个元素为单位进行重复,每个元素重复x行y列

matlab基础篇(一)_第2张图片

创建行、列向量

[a,b,c,d,e...]创建行向量

[a;b;c;d;e...]创建列向量,也可[a,b,c,d,e...]'创建列向量

在这里";"的意思是换行。'的意思是矩阵转置

.'表示转置,'表示共轭转置(虚数先取共轭数,再将矩阵进行转置)。对于虚数来说,使用'和.'的效果是不一样的。

如何取行向量or列向量中的值

  • 对于行向量v(end可以代指最后一个元素的位置

v(a):取第a个元素

v([a b c d...]):取第a,b,c,d...个元素

v([a:b]):取[a,b]位置区间的元素

v([a:b c d]):取[a,b]位置区间,还有第c个和第d个位置的元素

总的来说就是v([......])取元素操作,位置索引可以是数字也可以是切片表示,也可以是二者的组合

如何取矩阵中的值

  1. 两个参数:若m为一个矩阵。则可以用m( _ , _ )方式对m中的元素进行访问。前面的参数代表行,后面的参数代表列。每个参数的填写方式和访问行(列)向量的方式是一样的
  2. 一个参数:

从左到右,从上到下对元素的位置进行编号。在下图中v(9)的值就是-1 

matlab基础篇(一)_第3张图片

注意: 获取矩阵元素时,索引必须为正整数或者是和矩阵形状相同的逻辑矩阵

更改矩阵的值

m(1,:)=[1,2,3]  正确

m(1,:)=[1;2;3]  正确

m(1:2,1:2)=[7,8;9,10] 正确

m(1:2,1:2)=[7,8,9,10] 错误

改变一行或一列的值时,保证等号两边的元素个数相同就可以。

改变非一维矩阵时,赋值的内容的形状要和所更改的部分矩阵形状保持一致。元素数量也要一致

特例:如果等号右边为一个数字,那么不管被更改部分的形状和元素个数是什么样子,都是可以的

如何对矩阵的对角线,次对角线以及次次对角线进行赋值

diag(v)表示生成对角线为v的矩阵。(v为行向量或列向量)

diag(v,-1)表示生成次对角线为v的矩阵(主对角线下面的一条对角线)

diag(v,1)表示生成上次对角线为v的矩阵(主对角线上面的一条对角线)

diag(v,-2)表示生成次次对角线为v的矩阵(主对角线下下面的一条对角线)

matlab基础篇(一)_第4张图片

空矩阵

E=[]可以创建空矩阵,空矩阵可以和任何一个矩阵粘合。

nan(x,0):生成x行0列的空矩阵

nan(0,y):生成0行y列的空矩阵

矩阵横向拼接/纵向拼接

用[]来对矩阵进行拼接

矩阵之间用逗号()或空格( )进行连接都表示横向拼接,要求矩阵之间的行数相同才能进行横向拼接

分号()表示纵向拼接,要求矩阵之间的列数相同才能进行纵向拼接

matlab基础篇(一)_第5张图片

 matlab基础篇(一)_第6张图片

diff()函数

diff(x,n,dim)

x为行向量或者列向量时。沿着行或列的方向进行n次差分。

x为矩阵时,沿着dim指定的维度进行n次差分。(dim为1时是在列上进行差分,dim为2时在行上进行差分)

其他操作or函数 

  • i和j可以用来表示虚数。如果自命名变量中i和j,如i=2,那么2+3*i不是虚数,而是计算出来的数,这时j可以用来表示虚数,如果j也成为了变量名。那么可以这样表示虚数:2+3*1i。(因为1i和1j永远不会成为一个自命名变量的名字,是绝对安全的。2i,3i....都是一样的)
  • rng()抛种子,如果括号中输入小数,那么matlab会自动处理为整数。如rng(0.3)和rng(0)的效果一样
  • eye(n)生成n维单位矩阵 
  • 不等于表示为~=;~表示否定
  • sign()返回数的符号。NAN和0返回值为0,正数为1,负数为-1。
  • nthroot(x,y)表示求x的y次根。nthroot(8,3)的结果为2
  • deg2rad()度数转换为弧度;rad2deg()弧度转换为度数。
  • linspace(start,end,num)返回从start到end,个数为num的等差数列
  • logspace(start,end,num)返回 从10^{start}10^{end},个数为num的等比数列
  • 在matlab中,切片法表示的索引为,start:step:end。step默认值为1(在python中是start:end:step)
  • length(m):返回m矩阵行数和列数中较大的数
  • size(m):返回矩阵m的行数和列数
  • numel(m):返回矩阵m的元素个数
  • reshape(m,2,6):将矩阵的形状变为2行6列
  • find(w>0):找到w矩阵中值大于0的位置(返回的位置索引是一个数表示的,而不是行和列的组合进行表示的位置)
  • find(v):v为逻辑矩阵,返回v中真值为1的位置索引
  • find(v,2,'first'):v为逻辑矩阵,找到v矩阵中前两个真值为1的位置

你可能感兴趣的:(matlab,开发语言)