MATLAB的学习——基本操作和矩阵操作

基本操作

命令窗口操作:

  • clc :删除以上的操作及输出;
    clear x y z 删除上面的 x y z 三个变量的值
  • 输出格式的限定
>> format long
>> x= 2+11/16+2^1.2
x =
   4.984896709994070
   
>> format short
>> x= 2+11/16+2^1.2
x =
    4.9849

>> format short e  //以科学计数法的形式输出
>> 7.2*3.1

ans =

   2.2320e+01
  • 输出 e^a exp(a)
>> a =3
a =
     3
>> exp(a)
ans =
   2.0086e+01
>> exp(1)
ans =
   2.7183e+00
>> 
  • 输出 平方根 sqrt(x)
>> x = sqrt(9)
x =
     3
  • 输出 自然对数 log(x)
  • 输出绝对值 abs()
  • 三角函数 cos(弧度值)、sin()、tan(),反三角函数acos(弧度值)、asin()、atan(),圆周率 pi 就是 pi
>> format rat // 分数形式输出
>> atan(pi/3)
ans =
    1110/1373  
  • 复数
    复数因子直接 就是 i
>> a = 2+3i;b=1-1i;a+b
ans =
       3        +    2i      

注意:运行名为 my_m.m.m 文件,就是在命令行输入 my_m 即可

  • 函数积分int(a,b,c,d)
    说明:a表示被积函数,b表示被积变量,c表示下限,d表示上限
    操作上需要定义

向量和矩阵

  • 向量:即一维数值数组。定义如下:(就是用分号来换行)
>> a = [2;1;4]
a =
       2       
       1       
       4   
>> a = [2 1 4] 
a =
       2              1              4   
>> a = [2,3,4]
a =
       2              3              4    
  • 向量或者矩阵的转置,就是在 a上面加(')即
>> a = [2,3,4]
a =
       2              3              4       
>> a'
ans =
       2       
       3       
       4       
  • 已存向量中创建大向量
>> A = [1;2];B=[3;4];C=[A;B]
C =
       1       
       2       
       3       
       4       
  • 创建一个等差向量元素,如 x = [xi :q : xe]
    其中,xi 表示首元素,xe 表示尾元素,q 表示 等差
>> x = [0:0.1:1]
x =
         0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000    1.0000
  • 对数值相隔相同的行向量 logspace(a,b,n)
    即 10^a 到 10^b 之间的 n 个对数值等差的向量
>> logspace(1,2,5)
ans =
   10.0000   17.7828   31.6228   56.2341  100.0000
  • 返回向量元素的个数 length(A)
  • 找出向量元素中的最大值max(A)和最小值min(A)
  • 求向量的模:|A| 即:(1)A.*A 就是向量内部元素自平方;(2)元素求和:sum(A);(3)求平方根sqrt(A)
  • abs(A) 求绝对值
>> A = [8 7 6 5 4 3 2 1]
A =
     8     7     6     5     4     3     2     1
>> length(A)
ans =
     8
>> max(A)
ans =
     8
>> min(A)
ans =
     1
>> A.*A
ans =
    64    49    36    25    16     9     4     1
>> a = sum(A.*A)
a =
   204
  • 向量的点乘dot(a,b)(数量积,对应相乘再相加)
  • 叉乘cross(a,b)(向量积,叉积的长度|a×b|可以解释成这两个叉乘向量a,b共起点时,所构成平行四边形的面积),两边相乘再乘sin夹角
>> a= [1;4;7];b=[2;-1;5];
>> c = dot(a,b)
c =
    33
>> e = cross(a,b)
e =
    27
     9
    -9
  • 向量元素的引用 例如:A(2)A(:)表示引用全部元素,A(4:6) 引用第4个到第6个元素组成的包含三个元素的向量
>> A=[4 43 6 7 8 9 10]
A =
     4    43     6     7     8     9    10
>> A(2)
ans =
    43
>> A(:)
ans =
     4
    43
     6
     7
     8
     9
    10
>> A(4:6)
ans =
     7     8     9

矩阵操作

矩阵的操作与向量的操作类似

  • 矩阵的各个元素对应位置相乘(.*),矩阵相乘为(*
  • 对矩阵每个元素加一个常数,比如 2 C=2+A
  • 矩阵的各个元素对应位置相除(./)左除,(.\)右除
  • 矩阵的各个元素进行平方(.^2)
>> A=[12 3;-1 6];B=[4 2;9 1];
>> C = A.*B
C =
    48     6
    -9     6

>> E = A*B
E =
    75    27
    50     4
>> b=2;
>> c= b+A;
>> c
c =
    14     5
     1     8
>> A./B
ans =
    3.0000    1.5000
   -0.1111    6.0000
>> A.\B
ans =
    0.3333    0.6667
   -9.0000    0.1667
>> B.^2
ans =
    16     4
    81     1
  • 特殊类型矩阵
    eye(n),生成: n x n 的单位矩阵
    zeros(n) 或者 zeros(m,n),生成:n x n 的 0矩阵
    ones(n) , ones(m,n),生成 1矩阵
>> eye(4)
ans =
     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1
>> zeros(4)
ans =
     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0
>> ones(4)
ans =
     1     1     1     1
     1     1     1     1
     1     1     1     1
     1     1     1     1
>> ones(2,4)
ans =
     1     1     1     1
     1     1     1     1
  • 矩阵元素的引用
    A(m,n),位置m 行 n 列元素
    A(:,i),位于 i 列的所有元素
    A(:,2:3),第2列 到 第3列的所有元素
    A(2:3,1:2),第 2 行 到 第 3 行,第 1 列 到 第 2 列 此范围内的元素
    A(2,:)= [][] 可以用来删除矩阵中的对应位置的元素
    A([1,2,1],:) ,复制行,创建新矩阵,该指令意思是 第1行 复制 一次,第 2 行 复制一次,第 1 行 复制一次

  • 行列式 与 线性系统求解
    行列式计算 det(A)
    行列式不为 0 时,它是有解的,使用 右除\,例如
    5x + 2y - 9z = -18
    -9x - 2y + 2z = -7
    6x + 7y + 3z = 29
    三元一次方程求解:

>> A = [5,2,-9;-9,-2,2;6,7,3];
>> det(A)
ans =
   437
>> b =[-18;-7;29];
>> A\b
ans =
    1.0000
    2.0000
    3.0000
  • 矩阵的秩 rank(A)
  • 求逆矩阵inv(A) 与 伪逆矩阵 pinv(A)
  • 初等变换——简化梯形矩阵 rref(A)
>> A = [1,2;4,7]
A =
     1     2
     4     7
>> rref(A)
ans =
     1     0
     0     1

magic() 函数

>> magic(8)
ans =
    64     2     3    61    60     6     7    57
     9    55    54    12    13    51    50    16
    17    47    46    20    21    43    42    24
    40    26    27    37    36    30    31    33
    32    34    35    29    28    38    39    25
    41    23    22    44    45    19    18    48
    49    15    14    52    53    11    10    56
     8    58    59     5     4    62    63     1
>> sum(magic(8))
ans =
   260   260   260   260   260   260   260   260
>> rref(magic(8))
ans =
     1     0     0     1     1     0     0     1
     0     1     0     3     4    -3    -4     7
     0     0     1    -3    -4     4     5    -7
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0

  • LU分解求解方程组:
    例如:
    3x + 2y - 9z = -65
    -9x + 5y + 2z = 16
    6x + 7y + 3z = 5
>> A = [3 2 -9;-9 -5 2;6 7 3];b=[-65;16;5];
>> [L,U]=lu(A)
L =
   -0.3333    0.0909    1.0000
    1.0000         0         0
   -0.6667    1.0000         0
U =
   -9.0000   -5.0000    2.0000
         0    3.6667    4.3333
         0         0   -8.7273
>> x = U\(L\b)
x =
    2.0000
   -4.0000
    7.0000
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LionelMartin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值