zoukankan      html  css  js  c++  java
  • MATLAB使用方法(不断更新中……

    文件操作

    保存数据到文件中:
    save filename
    清除workspace中数据:
    clear
    清除command window:
    clc
    从文件中读取数据:
    load filename (不用后缀)
    查看workspace里的数据:
    data(变量名)

    保存部分变量:
    save 变量名

    加载部分变量:
    load 变量名

    关闭MATLAB时,工作区将被清除。MAT文件可用于保存变量。当您重新打开MATLAB时,这些变量就可以被加载到工作区中。

    小数位数显示

    默认为4位小数
    输入 format long
    再输入x
    精确到15位小数
    输入 format short
    恢复默认

    创建脚本(一次进行多项指令)

    方法是在MATLAB编辑器中创建一个临时脚本
    单击“New Live Script"(新建实时脚本)
    在灰色代码框中输入命令
    还可以切换到文本模式以添加一点说明(LIVE EDITOR中的Text)
    通过点击“运行”(Run)按钮一次按顺序运行所有指令
    输出会显示在右侧的窗格中
    可以点右边的按钮改变输出的布局(右侧/下方)
    点结果会标示生成该结果的命令,反之亦然
    可将脚本分为多个部分,以便每次只运行一部分代码
    要运行单个节,点击"Run Section"(运行节)按钮
    可将脚本共享给其他MATLAB用户,或保存为静态PDF/HTML文档
    Layout中选择多种布局
    Section Break用来在其后断开,对脚本中不同代码分块

    数据类型及不同定义方式

    MATLAB中变量均以数组(array)形式保存,类型有:
    matrix 矩阵
    column vector 列向量
    row vector 行向量
    scalar 标量(实际上是1*1的数组)

    定义有多个数的数组可以用中括号括起来
    若不同数之间用空格或逗号隔开,则为行向量
    若不同数之间用分号隔开,则为列向量
    定义矩阵:同一行中的数用逗号或者空格,上一行最后一个数与下一行第一个数之间用分号
    这些中括号中的组成数组的数可以为表达式,它会自动算,以结果形式保存

    定义包含连续自然数的数组:输入一头一尾,中间为冒号,可以不用中括号
    这种方法默认两数间隔为1
    自定间隔的方法:第一个数:间隔:最后一个数
    如果你知道的是这个数组中数字的数量,而非两数的间隔,用linspace函数:
    linspace(first,last,number_of_elements) 注意有逗号 不用中括号
    这些方法默认得到行向量,使用转置变为列向量: x = x’
    或者在初始化构成的时候就在外面加小括号,右括号后加单引号

    矩阵操作

    随机数矩阵:rand(x) 表示创建一个x*x的每个数都是随机数的矩阵(范围(0,1))
    rand(x,y) x行y列的随机数矩阵
    零矩阵:zeros 用法与rand相同
    单位矩阵:ones 用法与rand相同

    eye:主对角线为1,其余位置为0

    size(x)得出矩阵x的行数与列数,eg:
    y = size(x),则y为一个1*2矩阵(行向量),第一个数为x的行数,第二个数为x列数,无论x的行数列数是否相同
    也可以保存为2个值 [xrow,xcol] = size(x)
    可以创建与x大小相同的矩阵,如rand(size(x))

    Indexing(索引)

    用来提取和修改数组中的值
    行/列向量:一个索引值x(idx)
    x(3)
    x(2:4)
    矩阵:x(row,col)
    x(1,3)
    x(1,:) //整个第一行
    x(:,3) //整个第三列
    注:1.可以用end代表最后一行或最后一列,如y=A(end,2),(end-1)等表达式也都合法

    运算符号

    数组+-*/常数
    相同大小数组相加
    相同大小数组相乘:不能用*,要用.* (a行c列*c行b列 得a行b列)

    对整个数组也有效的函数
    max/min函数整个数组范围内取最大/最小值
    也可以得出2个值,记录索引 [xMax,idx] = max(x)
    若只想得出第二个值,第一个值用~代替 [~,ivMax]
    (关于记录索引的似乎不能用矩阵)
    sqrt 每个元素开方
    round 每个元素四舍五入(到个位)

    PLOT函数(画图)

    两个相同长度的向量可以使用plot函数相互绘制
    plot(sample,mass1)说明sample在x轴上绘制,mass1在y轴上绘制
    plot画图还可以(x,y,"r-o"),将绘制一条红色(r)虚线(--)并以圆(o)作为标记
    (You can learn more about the symbols available in the documentation for Line Specification.)
    请注意,每个plot命令都创建了一个单独的plot,要在一条线上绘制另一条线,请在添加另一条线的同时使用“hold on”命令
    plot(x1,y1)
    hold on
    plot(x2,y2)
    解除:hold off
    若plot中只放了一个向量:自动看作y坐标,x坐标由1~n
    plot(y,"LineWidth",5)(参考:documentation for Line Properties.)
    可以在行说明符之后向plot函数提供其他输入:plot(x,y,"ro-","LineWidth",5)

    TITLE函数(添加标题)

    title(字符串) 给图表加题目,注意字符串用双引号表示

    title("fsjs")

    遇到新函数
    通过点击”帮助“ 进入 MATLAB文档 点入function或直接搜索(更高效)
    或者直接再COMMAND WINDOW中输入:doc 某函数 ,可直接跳出结果(最最最高效)

    Randi函数(随机数)

    这里节选一种用法:

    X = randi(imax,sz1,...,szN) returns an sz1-by-...-by-szN array where sz1,...,szN indicates the size of each dimension. For example, randi(10,3,4) returns a 3-by-4 array of pseudorandom integers between 1 and 10.

    rref函数

    求简化阶梯矩阵(row reduced echelon form)

    rref(B) 

    MATLAB中导入文件

    选择该文件,并点击“导入数据”(Import Data)
    或直接双击它
    双击mat文件,其中变量值被导入工作区中
    双击jpg文件,她将以像素值数组的形式导入
    双击文本文件(txt)或电子表格(csv),会找导入工具(Import Tool),并生成数据预览,要导入的数据以蓝色突出显示,文本文件中的任何缺失数据以橙色突出显示,且在默认情况下被替换为NaN,默认情况下,导入工具以表的形式导入此数据
    调整Output Type

    关于表(TABLE)

    要从表中提取变量,可以使用点表示法(dot notation):
    data.VariableName

    如果使用表,则可能需要将相关数据保存在一起。可以将计算结果分配给表,而不是创建单独的变量:
    data.HeightMeters = data.HeightYards*0.9144
    elements.Mass = elements.Density.*elements.Volume1

    通过点击表中变量,选择排列方式(通常是由小到大or由大到小)
    若想固定这个排序(永久保存),输入一行:
    elements = sortrows(elements,'Mass')

    点表示法用于提取表变量。要提取行,可以使用常规数组索引:
    提取table的前三行:top3 = elements(1:3,:)
    注意此时top3也是table

    逻辑索引

    关系运算符(如<,>,<=,>=,==,~=(不等于)):
    对两个值进行比较,结果为1(true)或0(false)
    矩阵/向量与一个值进行比较,相当于其中每个值都与该值比较,结果的数组大小与原来矩阵/向量大小相同
    使用逻辑数组作为数组索引,在这种情况下会提取所有索引为真的数组元素:
    v = v1(v1>6)
    也可以对两个不同向量进行逻辑索引:
    v = sample(v1 > 6)
    利用逻辑索引更改变量值:
    例如将所有值为99的元素值改为1 :v1(v1<4)=0
    也可使用与(&)/或(|)运算:
    x = v1(v1<4 & v1>2)
    x = v1(v1>6 | v1<2)

    判断结构

    if
    else if
    else
    end

    循环结构

    for x = 1:5

    end


    但若循环中计算较简单,可能不需要使用for循环:
    x = 1:5
    xSq= x.^2
    利用MATLAB处理数组的自然性,可以使用MATLAB数组功能

    学到的英语(???)

    in that order 原来就是”按顺序“的意思 学到了
    the second to last 原来是倒数第二的意思 学到了

  • 相关阅读:
    mysql 锁
    python——三道贪心算法例题
    mysql 常见面试题
    API 管理工具
    如何实现一个简化版的 jQuery
    js设计模式--发布订阅模式
    React应该如何优雅的绑定事件?
    js数据结构-链表
    前端开发中的Error以及异常捕获
    vue-router和webpack懒加载,页面性能优化篇
  • 原文地址:https://www.cnblogs.com/wifimonster/p/13766525.html
Copyright © 2011-2022 走看看