zoukankan      html  css  js  c++  java
  • MATLAB入门教程

    入门

    MATLAB的语句后面要加分号;表示结束语句。

    MTALAB命令行窗口的显示格式

    指令 说明 实例
    format 默认格式 271.82
    format short / format long 显示小数点后4位 / 14位 2718.2 / 2.746468468
    format short e / format long e 显示小数点后4位 / 14,科学计数法表示 2.7183e+000 / 2.7182815286465e+000
    format short g / format long g 在format short / format long中自动选择格式  ///  在format short e / format long e中自动选择格式  

    常用的MATLAB控制命令

    指令 说明
    exit、quit 退出MTALAB会话框
    format 数学格式
    clc 清空当前的命令行窗体
    dos unix 执行DOS、UNIX系统指令
    cd 切换路径 或 显示当前路径
    pwd 显示当前路径
    dir、ls 显示当前路径下的文件
    what 显示当前路径下的MATLAB文件
    which 判断当前文件的所在路径
    clear 清空
    whos 查看当前所有变量的名;行列数;大小;类型;属性
    class(A) 查看变量A的数据类型

    help 变量名:能够查看帮助文档。

    矩阵和数组

      我们先要知道几个基本概念

    数组有序数据的集合,数组的每一个成员都属于同一种数据类型

    向量:从编程上考虑,向量就是一维数组。但从数学上考虑,向量是 1xNNx1 的矩阵,行向量和列向量。MATLAB的基本运算单位就是矩阵和向量。

    矩阵:矩阵就是矩阵,没得解释。

    创建向量

    创建行向量

    逐个在[]中输入向量元素,创建向量的时候元素彼此之间可以使用空格或者逗号“,”作为间隔符

    x = [1 2 pi 5]    x = 1  3  3.14  5

    利用运算符“:”创建向量

    x = 1:10    x = 1 2 3 4 5 6 7 8 9 10

    x = 0:0.1:1  x = 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

    函数linspace(x1,x2,n)用来创建指定区间指定个数的函数,间隔为$frac{x_1-x_2}{n-1}$

    x = linspace(1,2,5)  1 1.25 1.5 1.75 2   

    函数logspqce(x1,x2,n)被用来创建对数空间的向量,第一个元素为$10^{x_1}$,最后一个元素为$10^{x_2}$,n为向量元素个数。

    x = logspace(1,3,5)  10 31.6 100 316 1000

    创建列向量

    直接在[]括号中输入即是列向量

    A = [1;2;3;4;5;6]

    转置的方法创建列向量

    B = (1:6)'

    $egin{matrix}
    1\ 
    2\ 
    3\ 
    4\ 
    5\ 
    6
    end{matrix}$

    创建矩阵

    矩阵行与行之间需要使用分号“;”间隔。矩阵一行元素之间使用逗号“,”或者空格“ ”间隔

    直接输入法

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

    B = [1:3;4:6;7:9]

    $egin{matrix}
    1&2&3\
    4&5&6\
    7&8&9
    end{matrix}$

    索引

    MATLAB数组或矩阵的索引都是从1开始的,并且可以索引最后一个元素,MATLAB的步长放在中间,矩阵的数数是“”的数的,Python是从零开始数的,而且矩阵是从“横”的数的。

    访问第三个元素:

    A(3)

    访问向量第一、第三、第五个元素:

    A([1 3 7])

    访问向量第一、第三、第五个元素:

    A([1:2:5])

    访问最后四个元素:

    A([end-3:end])

    重复访问向量中的元素:

    A([1:5,5:-1:1])

    访问向量元素中的结果是创建新的向量,对向量中超过最后值索引的数据赋值,会把之前没有的值都填上。

    使用索引访问矩阵元素的方法

    矩阵元素的访问 说明
    A(i,j) 第i行第j列
    A(I,J) 访问由向量I和J指定的矩阵A中的元素
    A(i,:) 访问第i行的所有元素
    A(:,j) 访问第j列的所有元素
    A(:) 访问矩阵A中的所有元素
    A(N) 访问第N个元素

    []是创建,()是索引。索引中的分隔符是引号“:”

    MATLAB的矩阵生成函数

    函数 说明
    zeros 产生元素全为0的矩阵
    ones 产生元素全为1的矩阵
    eye 产生单位矩阵
    rand 产生均匀分布的随机矩阵,数字范围(0,1)
    randn 产生均值为0,反差为1的正态分布随机矩阵
    diag 获得矩阵的对角线元素,也可生成对角矩阵
    magic 产生幻方阵,该方阵的行元素之和与列元素之和都相等

    矩阵的基本运算

    运算命令 说明 运算命令 说明
    A' 转置 rank 求矩阵的秩
    A^n 求冥 eig 求矩阵的特征向量
    A*B 矩阵乘法 norm 求矩阵的范数
    A/B 矩阵右除 AB 矩阵左除
    inv 求逆,注意不是所有的矩阵都有逆矩阵    

    基本数学函数和圆整和求余函数

    函数 说明 函数 说明
    exp 指数函数 sqrt 平方根函数
    fix 向0取整 rem(i,j) i对j求余
    floor 向$-infty $取整 ceil 向$+infty $取整
    round 向最近的整数取整 mod(i,j) i对j取模

    矩阵或数组的常用操作

    函数 说明 函数 说明
    size 获取矩阵的行列数 numel 获取矩阵的元素个数
    disp 显示矩阵或者字符串的内容 cat 合并不同的矩阵或数组
    reshape 修改矩阵的行数和列数    

    数组拼接

    例如:$a=egin{pmatrix}1 & 2 & 3\ 4 & 5 & 6\ 7 & 8 & 9end{pmatrix}$,$b=egin{pmatrix}1 & 1 & 1\ 2 & 2 & 2\ 3 & 3 & 3end{pmatrix}$。

    横向拼接:c=[a,b]或 c=[a b]

    $$c=egin{pmatrix}1&2&3&1&1&1\4&5&6&2&2&2\7&8&9&3&3&3\end{pmatrix}$$

    纵向拼接:c=[a;b]

    $$c=egin{pmatrix}1&2&3\4&5&6\7&8&9\1&1&1\2&2&2\3&3&3end{pmatrix}$$

    稀疏矩阵

    多维数组

    数据类型

    数据类型 说明
    double 双精度数据类型
    single 单精度数据类型
    unit8 / unit16 / unit32 / unit64 无符号*位整数
    int8 / int16 / int32 / int64 有符号*位整数

    空数组

    创建空数组的几种方法:

    A = []

    B = ones(2,3,0)

    C = randn(2,3,4,0)

    ~=不等于

    ==等于

    &|~与或非

    字符串 char

    字符串使用[]进行拼接的时候,若使用逗号“,”作为不同字符串之间的分隔符,相当于扩充字符串;若使用分号“;”作为不同字符串之间的分隔符,相当于扩展字符串成为二维三维...

    常用的字符串操作函数

    函数 说明
    char 创建字符串;将数值转变成字符串
    blanks 创建空白的字符串
    deblank 将字符串尾部的空格删除
    ischar 判断变量是否为字符类型
    strcmp 比较字符串是否一致
    upper / lower 将字符串的字符转成大写 / 后者相反
    num2str / int2str 数字转变成字符串 / 整数变成字符串

    格式化字符

    字符串 说明 字符串 说明
    %c 显示单一的字符 %e 科学计数
    %d 整数 %s 字符串
    %f 浮点数据 %o 八进制
    %u 无符号整数 %x 十六进制

    获取用户输入

    A = input(prompt);  # A的类型为数字

    A = input(prompt,'s');  # A的类型为字符串

    格式化输出

    s = sprintf(format,A)

    元胞数组

    组成元胞数组的元素可以是任意一种数据类型

    A = {zero(2,2,2),'hello';17.35,1:100}

    $$A= egin{matrix}
    [2x2x2 double] & 'hello'\
    [17.35000] & [1x100 double]
    end{matrix}$$

    可以用cell来创建元胞数组,用花括号来索引“{}”

    MATLAB软件基本知识

    代码分块运行

    matlab程序中,有时候会看到两个百分号一起:%%,且当光标在这一部分时,颜色会不一样。比如:

    因为%%在matlab代码中的作用是将代码分块,上下两个%%之间的部分作为一块,在运行代码的时候可以分块运行,查看每一块代码的运行情况。常用于调试程序。

    分块运行的方法有两种:

    第一种,将光标放置在要运行的那一块中,然后在工具栏中选择运行节,英文为Run Section

    第二种,将光标放置在要运行的那一块中,直接按CTRL+ENTER也可以实现分块运行

    使用案例:

    比如你想在本文第一张图中代码绘制的figure中加一个图例,可能你要重新运行整个代码,但分块运行你只要加上图例代码后,按下CTRL+ENTER

    就实现了分块代码的运行了

    另外在有时候需要逐步向别人展示代码运行的结果,用%%分块以后拆开运行,也是很好的选择。或有两个方法进行比较,也可以写在一个文件中分块运行。

    但要注意前后变量的承接,变动关系等等。

    代码自动补全:在输入代码的时候只需要输入一部分,然后按 Tab键,就可以看到matlab的自动提示。

    代码自动调正格式:当需要对全局进行自动调整时只需Crtl+A全选后,再按Ctrl+i 即可自动排版。

     disp()  打印

  • 相关阅读:
    487-3279(电话号码)
    【模板】二分图匹配
    【模板】网络最大流
    P3879 [TJOI2010]阅读理解
    10.10 考试T1 低仿机器人
    P4025 [PA2014]Bohater
    线段树合并 从入门到入土
    CF547B Mike and Feet
    10.6洛谷月赛划水记
    P4552 [Poetize6] IncDec Sequence
  • 原文地址:https://www.cnblogs.com/LXP-Never/p/9805844.html
Copyright © 2011-2022 走看看