zoukankan      html  css  js  c++  java
  • 58 matlab 编程

    0 引言

    matlab中有些东西记录一下

    1 matlab coder

    matlab命令行窗口输入:

    coder

    回车即可打开matlab coder 窗口。接着,matlab将引导你把matlab格式的function改成c/c++ 风格。

    2 matlab基本操作

    (1) x(:)

    将矩阵转化为列向量,一列一列地拼起来

    (2)ndgrid 网格函数

      1 [X1,X2, X3] = ndgrid(y1,y2,y3)

      X1以y1为列向量,采用y2的列数向右复制;然后采用y3的层数,向上复制。

      X2以y2为行向量,采用y1的行数向下复制;然后采用y3的层数,向上复制。

      X3以y3为层向量,采用y1的行数和y2的列数,复制y3的每一个元素。

    [x1,x2,x3] = ndgrid(1:3, 1:3, 1:3)
    
    x1(:,:,1) =
         1     1     1
         2     2     2
         3     3     3
    x1(:,:,2) =
         1     1     1
         2     2     2
         3     3     3
    x1(:,:,3) =
         1     1     1
         2     2     2
         3     3     3
    
    x2(:,:,1) =
         1     2     3
         1     2     3
         1     2     3
    x2(:,:,2) =
         1     2     3
         1     2     3
         1     2     3
    x2(:,:,3) =
         1     2     3
         1     2     3
         1     2     3
    
    x3(:,:,1) =
         1     1     1
         1     1     1
         1     1     1
    x3(:,:,2) =
         2     2     2
         2     2     2
         2     2     2
    x3(:,:,3) =
         3     3     3
         3     3     3
         3     3     3

     (3) matlab 用符号进行运算

    >> syms e u
    >> f( e, u ) = 2 + 3 * ( e + 2 ) * u
    f(e, u) =
    u*(3*e + 6) + 2
    >> f( 3, 4 )
    ans =
    62

     (4) matlab绘制解空间

    三元一次不等式的解空间
    1 - x + y + z >= 0 
    1 + x - y + z >= 0
    1 + x + y - z >= 0
    1 - x - y - z >= 0

      RegionPlot3D[1 - x + y + z >= 0 && 1 + x - y + z >= 0 && 1 + x + y - z >= 0 && 

      1 - x - y - z >= 0, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}]

    http://www.ilovematlab.cn/thread-266232-1-1.html

     3 matlab中使用mex

    (1) Writing MATLAB C/MEX Code
    https://www.researchgate.net/profile/Hazim_Tahir/post/How_can_I_convert_MATLAB_code_to_c_c_code/attachment/59d64455c49f478072eacce0/AS%3A273746584113162%401442277679173/download/cmex.pdf

    (2) http://blog.sciencenet.cn/blog-261330-638774.html MATLAB是矩阵语言,是为向量和矩阵操作设计的,一般来说,如果运算可以用向量或矩阵实现,其运算速度是非常快的。但若运算中涉及到大量的循环处理,MATLAB的速度的令人难以忍受的。
    解决方法之一为,当必须使用for循环时,把它写为MEX文件,这样不必在每次运行循环中的语句时MATLAB都对它们进行解释。
  • 相关阅读:
    FastAPI 学习之路(十)请求体的字段
    FastAPI 学习之路(九)请求体有多个参数如何处理?
    FastAPI 学习之路(八)路径参数和数值的校验
    FastAPI 学习之路(七)字符串的校验
    FastAPI 学习之路(六)查询参数,字符串的校验
    【2021-09-09】被人说自大是有原因的
    【2021-09-08】连岳摘抄
    【2021-09-07】管理工作,得上下同步
    【2021-09-06】连岳摘抄
    【2021-09-05】连岳摘抄
  • 原文地址:https://www.cnblogs.com/ghjnwk/p/10561849.html
Copyright © 2011-2022 走看看