MATLAB(一)

2021/7/21 23:14:11

本文主要是介绍MATLAB(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、Matlab视窗
  • 二、基本操作与矩阵输入
    • 1. 把MATLAB当做计算机
    • 2. 初等数学函数
      • Exercise练习
    • 2. 嵌入函数
    • 3. 特殊变量和常量
    • 4.MATLAB调用优先
    • 5. 数字显示格式长
      • Exercise练习
    • 6. 命令行终端
    • 7. 部分函数
    • 8. 数组(向量和矩阵)
      • Exercise练习
    • 9. 数组索引
    • 10. 取代位置
    • 11. 冒号运算符
    • 12. 数组连接
    • 13. 数组操作
    • 14. 一些特殊的矩阵
    • 15. 一些矩阵相关函数


前言

此篇文章是我在B站学习时所做的笔记,主要对MATLAB做了简单的介绍,代码部分为亲自动手演示过的,方便复习用。此篇文章仅供学习参考,禁止转载!


提示:以下是本篇文章正文内容,下面案例可供参考

一、Matlab视窗

在这里插入图片描述

二、基本操作与矩阵输入

1. 把MATLAB当做计算机

  1. Operators(操作员):+ - * /
  2. 结果由计算机显示为 Ans
  3. 优先组中从左到右的优先组是(最高第一组):
    (1) Parenthesis 括号 ()
    (2) Power 幂(^)
    (3) Multiplication and division 乘、除 (*, /)
    (4) Addition and subtraction 加、减 (+, -)

即:先加减后乘除,也可以用括号来设置优先级

2. 初等数学函数

Matlab帮助文档
运算符和基本运算
初等数学
图形

Exercise练习

摘自B站
在这里插入图片描述

知识点:三角学
√=sqrt()

>> cos(((1+2+3+4)^3/5)^0.5)
ans =

   -0.0050
>> cos(sqrt((1+2+3+4)^3/5))
ans =

   -0.0050

摘自B站
在这里插入图片描述

知识点:exp指数函数

错误代码:

>> e^(sin(10))
 e^(sin(10))
   ↑
错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII
字符的粘贴。
 
>> e^(sin(10))
函数或变量 'e' 无法识别。
 
>> exp^(sin(10))
错误使用 exp
输入参数的数目不足。

正确代码:1. 输入的字符要是英文的。2. 指数函数是exp(x)格式

>> exp(sin(10))

ans =

    0.5804

摘自B站
在这里插入图片描述

知识点:指数与对数

错误代码:

>> sin(sqrt(Π))+ln(tan(1))
 sin(sqrt(Π))+ln(tan(1))
          ↑
错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII 字符的粘贴。

正确代码:ln=log

>> sin(sqrt(pi))+log(tan(1))

ans =

    1.4228

2. 嵌入函数

函数可以嵌入到其他函数中

摘自B站
在这里插入图片描述

3. 特殊变量和常量

摘自B站
在这里插入图片描述

我们也可以通过查看文档的形式来了解哪些是特殊的变量和常量

>> iskeyword

ans =

  20×1 cell 数组

    {'break'     }
    {'case'      }
    {'catch'     }
    {'classdef'  }
    {'continue'  }
    {'else'      }
    {'elseif'    }
    {'end'       }
    {'for'       }
    {'function'  }
    {'global'    }
    {'if'        }
    {'otherwise' }
    {'parfor'    }
    {'persistent'}
    {'return'    }
    {'spmd'      }
    {'switch'    }
    {'try'       }
    {'while'     }

4.MATLAB调用优先

摘自B站
在这里插入图片描述

>> cos='This string';
>> cos(8)

ans =

    'r'

在这里插入图片描述

5. 数字显示格式长

样式结果
shortShort, 结果小数点后有4位的短的固定十进制格式。
longLong,固定的十进制格式,双值在小数点后15位,单值在小数点后7位。
shortE小数点后有四位数的短科学记数法。
longE长科学记数法,双值在小数点后15位,单值在小数点后7位。
bank小数点后有两位的货币格式。
hex二进制双精度数的十六进制表示。
rat小整数的比率。把数值转成有理数,分数

如:

>> format long
>> pi

ans =

   3.141592653589793

>> format longE
>> pi

ans =

     3.141592653589793e+00

>> format bank
>> pi

ans =

          3.14

>> format rat
>> pi

ans =

     355/113   

Exercise练习

摘自B站
在这里插入图片描述

>> 3/13+4/14+5/15

ans =

    0.8498

>> format long
>> ans

ans =

   0.849816849816850

>> format rat
>> ans

ans =

     232/273   

6. 命令行终端

观察两者的区别

>> a=10

a =

      10       

>> a=10;

;在命令的末尾会抑制到终端的输出,即是让此数值不显示
↑ 可以用来显示以前的命令

7. 部分函数

clc清除命令窗口显示
clear删除工作区中的所有变量,从工作区中删除项目、释放系统内存
who列出工作区中的变量
whos列出工作区中的变量及大小和类型

移除工作区的(variable)变量cos方式:

>> clear cos

在这里插入图片描述
用clear会把工作区的东西全部清空,要小心使用

>> clear

清屏(清除命令行窗口)的语句为:

clc

8. 数组(向量和矩阵)

知识点:线性代数

>> a=[1 2 3 4]

a =

     1     2     3     4

>> b=[1;2;3;4]

b =

     1
     2
     3
     4

>> a*b

ans =

    30

>> b*a

ans =

     1     2     3     4
     2     4     6     8
     3     6     9    12
     4     8    12    16

Exercise练习

摘自B站
在这里插入图片描述

>> A=[1 21 6;5 17 9;31 2 7]

A =

     1    21     6
     5    17     9
    31     2     7

9. 数组索引

摘自B站在这里插入图片描述

A(8):第8个数字
A([1 3 5]):第1、3、5个数字
A([1 3;1 3]) :第1、3个数字与第1、3个数字组成的矩阵
A([1 3],[1 3]):第1行、第3行与第1列、第3列的交集形成矩阵

>> A=[1 21 6;5 17 9;31 2 7]

A =

     1    21     6
     5    17     9
    31     2     7

>> A(8)

ans =

     9

>> A([1 3 5])

ans =

     1    31    17

>> A([1 3;1 3])

ans =

     1    31
     1    31

>> A(3,2)

ans =

     2

>> A([1 3],[1 3])

ans =

     1     6
    31     7

10. 取代位置

修改矩阵中的下列要素:

摘自B站在这里插入图片描述

A(1,2)=76替换掉第1行第2列的数值
A(3,:)输出第3行数值
A(3,:)=[]使第3行数值为空

注意
表达式:A()=[ ]表示删除A的行或列

>> A

A =

     1    21     6
     5    17     9
    31     2     7

>> A(1,2)=76

A =

     1    76     6
     5    17     9
    31     2     7

>> A(3,2)=0

A =

     1    76     6
     5    17     9
    31     0     7
    
>> A(3,:)

ans =

    31     0     7

>> A(3,:)=[]

A =

     1    76     6
     5    17     9

11. 冒号运算符

创建向量或数组,并指定迭代

摘自B站
语法:在这里插入图片描述

>> B=1:5

B =

     1     2     3     4     5

>> B=1:2:5

B =

     1     3     5

>> B=[1:5;2:3:15;-2:0.5:0]

B =

    1.0000    2.0000    3.0000    4.0000    5.0000
    2.0000    5.0000    8.0000   11.0000   14.0000
   -2.0000   -1.5000   -1.0000   -0.5000         0

>> str='a':2:'z'

str =

    'acegikmoqsuwy'

12. 数组连接

矩阵可以通过串联形成,保持矩形形状

摘自B站
在这里插入图片描述

F=[A B]表示把A和B 放在一起形成一个新的增广矩阵

>> A=[1 2;3 4];
>> B=[9 9;9 9];
>> F=[A B]

F =

     1     2     9     9
     3     4     9     9

>> F=[A;B]

F =

     1     2
     3     4
     9     9
     9     9

13. 数组操作

数组操作符:+ - * / ^ . '(转置)

FormExamples
A+b[6,3]+2=[8,5]
A-b[8,3]-5=[3,-2]
A+B[6,5]+[4,8]=[10,13]
A-B[6,5]-[4,8]=[2,-3]
A*B[3,5]*[4,8]’=52
A.*B[3,5].*[4,8]=[12,40]
A./B[2,5]./ [4,8]=[2/4,5/8]
A.\B[2,5].\ [4,8]=[4/2,8/5]
A.^B[3,5].^ [2,4]=[3^ 2,5^4]

摘自B站在这里插入图片描述

  • A+B:A和B的每行每列对应相加得到的新矩阵
  • A*B:用A的行乘以B的列,即A*B的第1行1列的值等于1*3+2*2+3*1=10,A*B的第1行2列的值等于1*3+2*4+3*3=20
  • A.*B:A和B的每行每列对应相乘得到的新矩阵,即A.*B的第1行1列的值等于1*3=3,A.*B的第1行2列的值等于2*3 =6
  • A/B:A*inv(B),inv(B) 计算方阵B的逆矩阵。B^(-1) 等效于 inv(B)。
  • A./B:A和B的每行每列对应相除得到的新矩阵,即A./B的第1行1列的值等于1/3
  • A+a:在A里边的数值每个都加上a
  • A/a=A./a
  • A^a= A^2=A*A
  • A.^a:在A矩阵里边,每个值都平方
  • A’:将A照着对角线转置
>> A=[1 2 3;4 5 4;9 8 7]

A =

     1     2     3
     4     5     4
     9     8     7

>> B=[3 3 3;2 4 9;1 3 1]

B =

     3     3     3
     2     4     9
     1     3     1

>> y1=A+B

y1 =

     4     5     6
     6     9    13
    10    11     8

>> y2=A*B

y2 =

    10    20    24
    26    44    61
    50    80   106

>> y3=A.*B

y3 =

     3     6     9
     8    20    36
     9    24     7

>> y4=A/B

y4 =

    0.0714    0.2857    0.2143
    1.1667         0    0.5000
    3.2619   -0.2857   -0.2143

>> y5=A./B

y5 =

    0.3333    0.6667    1.0000
    2.0000    1.2500    0.4444
    9.0000    2.6667    7.0000

>> a=2;
>> x1=A+a

x1 =

     3     4     5
     6     7     6
    11    10     9

>> x2=A/a

x2 =

    0.5000    1.0000    1.5000
    2.0000    2.5000    2.0000
    4.5000    4.0000    3.5000

>> x3=A./a

x3 =

    0.5000    1.0000    1.5000
    2.0000    2.5000    2.0000
    4.5000    4.0000    3.5000

>> x4=A^a

x4 =

    36    36    32
    60    65    60
   104   114   108

>> x5=A.^a

x5 =

     1     4     9
    16    25    16
    81    64    49

>> C=A'

C =

     1     4     9
     2     5     8
     3     4     7

14. 一些特殊的矩阵

  • linspace():生成线性间距向量
    例:linspace(x1,x2,n) 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)。
  • eye():单位矩阵
    例:eye(n)返回一个主对角线元素为 1 且其他位置元素为 0 的 n×n 单位矩阵。
  • zeros():创造全零矩阵
    例:zeros(n) 返回一个 n×n 的全零矩阵。
  • diag():创建对角矩阵或获取矩阵的对角元素
    例:diag(v) 返回包含主对角线上向量 v 的元素的对角矩阵。
  • rand():均匀分布随机数
>> linspace(0,13,6)

ans =

         0    2.6000    5.2000    7.8000   10.4000   13.0000

15. 一些矩阵相关函数

摘自B站
在这里插入图片描述

  • max(A):数组的最大元素,如上面题的max(A)=[7 5 9]
    1、如果 A 是向量,则 max(A) 返回 A 的最大值。
    2、如果 A 为矩阵,则 max(A) 是包含每一列的最大值的行向量。
    3、如果 A 是多维数组,则 max(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度的大小将变为 1,而所有其他维度的大小保持不变。如果 A 是第一个维度长度为零的空数组,则 max(A) 返回与 A 大小相同的空数组。
  • max(max(A)):整个矩阵中最大值,如max(max(A))=9
  • sum(A):数组元素总和,如sum(A)=[8 7 18]
    1、如果 A 是向量,则 sum(A) 返回元素之和。
    2、如果 A 是矩阵,则 sum(A) 将返回包含每列总和的行向量。
    3、如果 A 是多维数组,则 sum(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度会变为 1,而所有其他维度的大小保持不变。
  • sort(A):对数组元素排序,每列的值都会从上到下依次从小到大排,即按升序对 A 的元素进行排序。
  • sortrows(A):对矩阵行或表行进行排序,基于第一列中的元素按升序对矩阵行进行排序。
  • size(A):数组大小,求出这个A矩阵为几行几列,如果 A 是一个 3×4 矩阵,则 size(A) 返回向量 [3 4]。
  • find(A):查找非零元素的索引和值, 如find(A==6)=8:在A矩阵中,A=6的值位于第8个位置。
>> A=[1 2 3;0 5 6;7 0 9]

A =

     1     2     3
     0     5     6
     7     0     9

>> max(A)

ans =

     7     5     9

>> max(max(A))

ans =

     9

>> min(A)

ans =

     0     0     3

>> sum(A)

ans =

     8     7    18

>> mean(A)

ans =

    2.6667    2.3333    6.0000

>> sort(A)

ans =

     0     0     3
     1     2     6
     7     5     9

>> sortrows(A)

ans =

     0     5     6
     1     2     3
     7     0     9

>> size(A)

ans =

     3     3

>> length(A)

ans =

     3

>> find(A)

ans =

     1
     3
     4
     5
     7
     8
     9

>> find(A==6)

ans =

     8

如若侵权,请及时与我联系。
此篇文章仅供学习参考,禁止转载!



这篇关于MATLAB(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程