• matlab(1)


    ;结尾,不显示结果,否则立刻显示

    数据结构

    变量命名规则    字母(区分大小写)开头,后面跟其他字符

    数值型数据

    双精度数值变量  double

    单精度  single

    uint8()  图像表示与处理

    符号型

    sym(a)    将a转化为符号型

    变量声明    syms

    显示符号变量的精度    vpa(a)

    显示符号变量属性    assumptions()

    设置符号变量类型    assume();assumeALso()

    >> a=sym(123456789012345678901234567890)
     
    a =
     
    123456789012345677877719597056
     
    >> a=sym('123456789012345678901234567890')
     
    a =
     
    123456789012345678901234567890
       

    其他数据结构

    字符串  用单引号括起来

    多维数组  

    单元数组    用{}表示

    表格数据结构

    类与对象

    矩阵与向量

    存储矩阵

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

      先加行,再加列

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

      复数矩阵

    >> b=[1+9i,2+8i,3+7i;4+6i,5+5i,6+4i;7+3i,8+2i,9+1i]
    
    b =
    
       1.0000 + 9.0000i   2.0000 + 8.0000i   3.0000 + 7.0000i
       4.0000 + 6.0000i   5.0000 + 5.0000i   6.0000 + 4.0000i
       7.0000 + 3.0000i   8.0000 + 2.0000i   9.0000 + 1.0000i
    

    求逆矩阵

    c=inv(b)
    

    定义行向量

    d=1:0.5:10
    %从1到10,步长0.5
    
    d =
    
      1 至 11 列
    
        1.0000    1.5000    2.0000    2.5000    3.0000    3.5000    4.0000    4.5000    5.0000    5.5000    6.0000
    
      12 至 19 列
    
        6.5000    7.0000    7.5000    8.0000    8.5000    9.0000    9.5000   10.0000

    等间距

    vla=linspace(0,pi,20)
    %20等分
    
    vla =
    
      1 至 11 列
    
             0    0.1653    0.3307    0.4960    0.6614    0.8267    0.9921    1.1574    1.3228    1.4881    1.6535
    
      12 至 20 列
    
        1.8188    1.9842    2.1495    2.3149    2.4802    2.6456    2.8109    2.9762    3.1416
    子矩阵提取
    e=a(v1,v2)
    vi表示子矩阵要保留的行号
    v2表示子矩阵要保留的列号
    :,表示所有行或列
    end表示最后
    e=a(1:2:end,:)
    %提取a矩阵的1到最后一行,步距为2,所有列
    e =
    
         1     2     3     1
         7     8     9     3
    

      

     f=a([1,1,1,1],:)
    %第一行重复4遍,所有列
    f =
    
         1     2     3     1
         1     2     3     1
         1     2     3     1
         1     2     3     1
    

    矩阵的代数运算

    矩阵转置

    共轭转置

    >> c=a'
    
    c =
    
         1     4     7
         2     5     8
         3     6     0
    

      正常转置

    >> d=a.'
    
    d =
    
         1     4     7
         2     5     8
         3     6     0
    

      矩阵加减法

    c=a+b

    c=a-b

    矩阵乘法

    c=a*b

    矩阵除法  

    左除  ax=b,求x

    x=a

    右除  xa=b,求x

    x=b/a

    矩阵左右翻转  b=fliplr(a)

    矩阵上下翻转       b=flipud(a)

    旋转90°  b=rot90(a)

    旋转180°  b=rot90(a,k)  k=1,2,3,4

    矩阵的乘方  f=a^x

    >> z=[2,2;2,2]
    
    z =
    
         2     2
         2     2
    
    >> z^2
    
    ans =
    
         8     8
         8     8
    

      点运算

    >> a=[1,2,3;4,5,6;7,8,0];
    >> b=a.^a
    
    b =
    
               1           4          27
             256        3125       46656
          823543    16777216           1
    

      矩阵的其他运算

    与运算

    >> 1&1
    
    ans =
    
      logical
    
       1
    

      或运算

    >> 1|0
    
    ans =
    
      logical
    
       1
    

      非运算

    >> ~1
    
    ans =
    
      logical
    
       0
    

      异或运算

    >> xor(1,1)
    
    ans =
    
      logical
    
       0
    

      比较运算

    >,>=,<,<=,==,~=,find(),any()

    >> a
    
    a =
    
         1     2     3
         4     5     6
         7     8     0
    
    >> i=find(a>5)'
    %找出>5的数,单下标从列数
    i =
    
         3     6     8
    

      双下标

    >> [i,j]=find(a>5)
    
    i =
    
         3
         3
         2
    
    
    j =
    
         1
         2
         3
    

      

    >> a1=all(a>5)
    %判断每一列是否大于5,是返回1
    a1 =
    
      1×3 logical 数组
    
       0   0   0
    

      

    >> a2=any(a>5)
    %判断每一列是否存在>5的数
    a2 =
    
      1×3 logical 数组
    
       1   1   1
    

      解析结果的化简与变换

    simplify()  公式化简

    numden()  提取分子与分母

    collect()  合并同类项处理

    expand()    展开处理

    factor()  因式分解

    例子

    P(s)=(s+2)2(s2+3s+2)(s3+12s2+48s+64)

    输入

    >> syms s;
    %声明变量 >> p=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64) p = (s + 3)^2*(s^2 + 3*s + 2)*(s^3 + 12*s^2 + 48*s + 64)

      化简

    >> p1=simplify(p)
     
    p1 =
     
    (s + 3)^2*(s + 4)^3*(s^2 + 3*s + 2)
    

      因式分解与展开

    >> p3=factor(p),p4=prod(p3)
     
    p3 =
     
    [ s + 3, s + 3, s + 2, s + 1, s + 4, s + 4, s + 4]
     
     
    p4 =
     
    (s + 1)*(s + 2)*(s + 3)^2*(s + 4)^3
    

      变量替换

    f1=subs(f,x1,x1*)      x1替换为x1*,f表示函数

    希尔伯特矩阵

    Hilb()

    求100以内质数

    >>  a=1:100;b=a(isprime(a))
    
    b =
    
      1 至 17 列
    
         2     3     5     7    11    13    17    19    23    29    31    37    41    43    47    53    59
    
      18 至 25 列
    
        61    67    71    73    79    83    89    97
    

      全排列计算

    5个人照相有多少方法

    >> p=perms(1:5),size(p)
    

      5个人记作a,b,c,d,e

    >> p=perms('abcde'),size(p)
    %size()提取矩阵的行和列

    流程结构

    for循环

    例子:1到100求和

    >> s1=0;for i=1:100,s1=s1+i;end,s1
    
    s1 =
    
            5050

    while结构

    >>  s2=0;i=1;
    >> while (i<=100),s2=s2+i;i=i+1;end
    >> s2
    
    s2 =
    
            5050
    

      系统统计程序运行时间

    tic与toc

    条件转移结构

    >>  a=1;b=2;
    >> if(a>b) c=a-b;elseif(a<b) c=b-a;else c=0;end;c
    
    c =
    
         1

    开关结构(switch)

    试探结构

    函数编写

    脚本(只能解决一个问题)

    1.edit命令打开文件编辑器编辑

    2.保存后打文件名调用。

    函数(可以重复使用)

    脚本内容

    function [m,s]=findsum(k)
    s=0;m=0;
    while(s<=k),m=m+1;s=s+m;end
    

      调用

    >> [m,s]=findsum(12345)
    
    m =
    
       157
    
    
    s =
    
           12403
    

    nargin    可以检测输入个数

    递归

    conv()可以计算两个多项式的积

    伪代码语句

    pcode mytest

    绘制二维曲线

    已知数据绘图

    >> t=[1,2,3,4,5,6];
    >> y=[6,5,4,3,2,1];plot(t,y)

    已知函数绘图

    例子  y=sin(x)  xε[-pi,pi]

    >> x=[-pi:0.05:pi];y=sin(x);plot(x,y)
    

      法二

    >> syms x;y=sin(x);fplot(y,[-pi,pi])  
    分段函数
    多纵轴曲线绘制
    plotyyy()  plot4y()  plotxx()
    >> x=0:0.01:2*pi;
    >> y1=sin(x); y2 = 0.01*cos(x);
    >> plotyy(x,y1,x,y2)
    

     特殊二维图形

    绘制极坐标 

    Ρ=5sin(4θ/3)

    >> theta=0:0.01:6*pi;rho=5*sin(4*theta/3);
    >> polarplot(theta,rho)
    

      同一个窗口画多个图形

    >> t=0:0.2:2*pi;y=sin(t);
    figure(gcf),clf,subplot(2,2,1),stairs(t,y)
    subplot(2,2,2),stem(t,y)
    subplot(2,2,3),bar(t,y)
    subplot(2,2,4),semilogx(t,y)
    绘制隐函数  
    fimplicit()
    例子  x

    2

    sin(x+y

    2

    )+y

    2

    e

    x+y

    +5cos(x

    2

    +y)=0
    >> syms x y;
    h=fimplicit(x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y));
    %返回句柄h,默认区间是【-5,5】
    set(h,'color','b')
    %设置曲线
    

    设置为【-10,10】

    syms x y;
    h=fimplicit(x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y),[-10,10]);
    set(h,'color','b')
    

    excel文件读取

    例子  读取B5到C67数据

    >> X=xlsread('文件名','B5:C67');
    %X为一个两列矩阵
    t=X(:,1);p=X(:,2);
    %将两列分别赋值
    plot(t,p)
    

    三维图行绘制

    绘制三维曲线

    例子 x=t,y=2t,z=3t

    >> t=0:0.1:10;
    x=t; y=t.^2; z =t.^3;
     plot3(x,y,z);
    grid
    %网格状

    动态绘制三维线

    >> t=0:0.1:10;
    x=t; y=t.^2; z =t.^3;
     comet3(x,y,z)
    

    绘制三维曲面

    例子  z=x2+y2

    >> [x,y]=meshgrid(0:0.1:5,0:0.1:5);
    z=x^2+y^2;
    mesh(x,y,z)

    绘制三视图

    俯视  view(0,90);右视  view(90,0);主视  view(0,0)

    面向对象程序设计

    图形用户界面

    1,打开  guide

    2,双击对象得到对象属性编辑

  • 相关阅读:
    面试时面试官想要听到什么答案(关于一些vue的问题)
    Redis主从复制以及主从复制原理
    当面试官问你:如何进行性能优化?
    swoole通往大神之路——swoole任务中心说明及进程任务架构搭建
    全局句柄表
    句柄表(私有句柄表)
    关于VAD的两种内存隐藏方式
    通过修改VAD属性破除锁页机制
    R3环申请内存时页面保护与_MMVAD_FLAGS.Protection位的对应关系
    利用内存锁定技术防止CE修改
  • 原文地址:https://www.cnblogs.com/2018-1025/p/10409897.html
Copyright © 2020-2023  润新知