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 原来是倒数第二的意思 学到了

  • 相关阅读:
    ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
    ASP.NET MVC 重点教程一周年版 第三回 Controller与View
    DynamicData for Asp.net Mvc留言本实例 下篇 更新
    Asp.net MVC视频教程 18 单选与复选框
    使用ASP.NET MVC Futures 中的异步Action
    ASP.NET MVC RC 升级要注意的几点
    ATL、MFC、WTL CString 的今生前世
    msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
    关于Windows内存的一些参考文章
    Windows访问令牌相关使用方法
  • 原文地址:https://www.cnblogs.com/wifimonster/p/13766525.html
Copyright © 2011-2022 走看看