美文网首页
Matlab基础知识

Matlab基础知识

作者: weifeng_genius | 来源:发表于2019-01-22 17:08 被阅读2次

    基本操作和技巧

    1. matlab 大小写敏感,变量和python一样不用提前申明。
    2. matlab变量的默认类型是double
    3. 输入whos可以显示当前已经有的变量以及其类型属性等信息。
    4. python保留字(key word)——ans i j Inf (无穷大)eps(无穷小) NaN (not a number) pi
    5. clear + var 删除workspacevar变量;如果只写clear会全删。
    6. format + xxx 可以转换输出的结果的类型。默认为short类型。类型参考下表:
    7. 按行来读语句,也可以和C一样在语句后面加;表示下一行。
    8. Relational(logical) operators:
      大部分与C一样,但~=代表不等于;==代表等于;&&代表and||代表or
      9.在每一个if,for,while后面都要加一个end,中间的内容就是条件成立执行的。
    9. 一些技巧:
    • 可以查看之前调用的语句
    • 输入clc可以清屏。
    • matlab中 % 是注解
    • %% 可以弄出一个section 把程序分段,也能分段执行,加一个;可以一行多个子句。
    • 右键可以一键注解或取消注解。CTRL + R CTRL + T
    • 右键可以一键智能缩进。CTRL + I

    矩阵array

    1.基础
    row vector—— a = [1 2 3 4] (空格)
    column vector—— b = [1;2;3;4] (分号)
    A = [1 2;3 4]表示2*2的矩阵
    矩阵运算直接用 *即可。

    1. 索引:array indexing
      A(2,2) row-column 可以直接读取该位置的值
      A([1,2],[1,2])表示交集.
      A([1 3 5])得到1 3 5号的数字。(从上到下从左到右数)
      A([1 3;1 3])得到是两个重复的[1 3]构成两行。

    2. 矩阵修改:比如通过a(2,3)=xxx来替代~用等号即可

    3. colon(分号) operator —— 比如 A = [1:2:100]表示步长为2的等差数列,与pyhon稍微有一点不同的就是第二个参数和第三个参数的位置不一样~ 高级写法就是 A = [1:2:100; 2:2:100]这样就直接生成两行啦~

    4. A(3,:)就是代表第三行啦~
      a(3,:)=[]直接把最后一行删掉啦~

    5. F = [A B]可以让A B 矩阵形成增广矩阵(前提就是A B的秩是一样的)

    6. A.*B代表点c乘,每一项相互乘法(和加法类似) A*B就是矩阵的乘法啦~
      A+a矩阵加一个实数就是每一项都加一个实数
      A^2 表示A*A A.^2 表示每一项平方。

    7. A'表示逆矩阵。

    8. linspace() 和 numpy中生成是一样的 比如(1,100,100就是1~100 的100个点;eye就是单位矩阵;zeros零矩阵;ones就是全是1的矩阵;diag生成对角线矩阵 diag([1,2,3])就是生成对角线为1 2 3 的矩阵。
    9. max(A)得出的是挑选每一列最大的那个组成的行矩阵,后面的那些也是一样的。而若要得到整个矩阵中的最大(最小 平均 加和就调用两次即可。

    • sort(A)sortrows(A) 的区别 —— 前者是从小到大的按列来排序,而后者也是排序只不过交换顺序的时候是整行交换。
    • size()得到矩阵的n*m length() 得到长度,就是得到列的个数 find()可以得到某个数字的索引 比如find(A==5)可以找到矩阵中等于5的索引。

    Scripts and Function

    • 先定义A = zeros(2000,2000)相比于让A循环增大,可以提高效率。
    • 记录时间:
    tic
    XXXXX
    toc
    
    • 检测输入变量个数:
    function [a,F] = a_F(v2,v1,t2,t1,m)
    %A_F 此处显示有关此函数的摘要
    %   计算加速度和力
    if nargin == 4   % 当检测输入变量只有两个时,设置默认变量
        m = 1;
    end
    a = (v2 - v1)./(t2-t1);
    F = m.*a;
    end
    %[a f] = a_F(2,1,2,1,2)  来获取输出
    
    >> [a F] = a_F(2,3,1,2)
    a =     1
    F =     1
    >> [a F] = a_F(2,3,1,2,4)
    a = 1
    F =  4
    >> 
    
    • Function Handle
    f = @(x) exp(-2*x)   
    %其实是一个指针,指向e^-2x这个函数。让f指向exp(-2x)的值~
    x = 0:0.1:2;
    plot(x,f(x));
    >>> 绘制出一个e^-2x的图像。
    

    相关文章

      网友评论

          本文标题:Matlab基础知识

          本文链接:https://www.haomeiwen.com/subject/cekrjqtx.html