• 【Experiment】【数据处理与智能决策】实验一


    一、MATLAB 的编程界面

    左键双击MATLAB7.1 的图标,就打开了MATLAB 桌面,桌面上有如下4

    个主要窗口:

    1、命令窗口(Command Window):命令窗口是MATLAB 软件的主要窗口,

    该窗口就像一个功能强大的计算器一样,可以在其中运行MATLAB 所有的函数

    和运算。

    (1) 进行简单的数学运算:如输入

    〉〉35+289回车后得到

    ans =

    324

    〉〉35*289 回车后得到

    ans =

    10115

    〉〉289/35 回车后得到

    ans =

    8.2571

    〉〉5^2 回车后得到

    ans =

    25

    〉〉49^0.5 回车后得到

    ans =

    7

    (2) 定义变量:如输入

    〉〉b=pi 因为在MATLAB 中pi 表示圆周率π,所以回车后得到变量b 为

    b =

    17

    3.1416

    MATLAB 的意思是矩阵实验室( Matrix Laboratory)的缩写,对矩阵变量的

    定义也非常方便,如可输入

    〉〉b1=1:2:10 回车后可得

    b1 =

    1 3 5 7 9

    如省略间隔“ 2”则可得到顺序排列的整数。

    〉〉b2=1:5;回车后没有显示,但在此输入b2 不加“;”

    〉〉b2 回车得

    b2 =

    1 2 3 4 5

    〉〉b3=[3 6 8 4 9;2 5 7 8 9;1 5 7 8 9]回车后得到一个矩阵

    b3 =

    3 6 8 4 9

    2 5 7 8 9

    1 5 7 8 9

    还可直接用于矩阵的运算,如再输入

    〉〉b4=[1:5;2:6;3:7]回车后得

    b4 =

    1 2 3 4 5

    2 3 4 5 6

    3 4 5 6 7

    如果b3 和b4 的行数和列数相同,可计算b3 和b4 的差,记为bb。即输入

    〉〉bb=b3-b4 回车后得

    bb =

    2 4 5 0 4

    0 2 3 3 3

    -2 1 2 2 2

    如果被乘数的列数等于乘数的行数,也可直接相乘。如输入

    18

    〉〉bbb=b3*b4'

    bbb =

    100 130 160

    110 141 172

    109 139 169

    MATLAB 也可以定义字符。如输入

    〉〉b4='MATLAB means Matrix Laboratory'

    b4 =

    MATLAB means Matrix Laboratory

    (3) 进行常用的函数计算:如输入

    〉〉c1=sin(pi/6)回车后得

    c1 =

    0.5000

    〉〉c2=atan(1)回车后得

    c2 =

    0.7854

    〉〉pi/4 回车后得

    ans =

    0.7854

    这些函数对矩阵同样可以计算, 实际上是对矩阵中的每个元计算后放在原位

    置。如输入

    〉〉c1bbb=cos(bbb)回车后得

    c1bbb =

    0.8623 -0.3673 -0.9756

    -0.9990 -0.9317 -0.7056

    -0.5770 0.7180 0.7985

    〉〉c3=exp(1)

    c3 =

    2.7183

    19

    恰是自然对数的底。

    (4) 存储工作空间的变量:可用 save命令存储工作空间的变量。如输入

    〉〉save B b1 b2 b3 b4 bb bbb 回车后,就会在当前路径窗口找到一个B.mat

    文件,这就是MATLAB 的命令“ save”将工作空间的变量b1,b2,b3,b4,bb,

    bbb 存入到“ B.mat”中。也可用通配符“ * ”简化命令,如输入

    〉〉save A * 回车后,就会将变量空间的所有变量存到文件“ A.mat”中。再

    输入

    〉〉save C c*回车后,就会将变量空间中以“c”开头的变量存到文件“C.mat”

    中。可输入

    〉〉clear c*回车后,便将工作空间的所有以“ c”开头的变量删除了。如输入

    〉〉clear 回车后,就可将工作空间的所有的变量删除。再使用“ load A ”命

    令,就可使存储在文件“ A.mat”的所有变量恢复。即

    〉〉load A 回车后,所有变量又出现了。

    (5) 图片操作和作图: MATLAB 可读取jpg、bmp 或其他类型的图片,可

    用命令“ imread”。例如输入

    〉〉yangzee=imread('yangzee.jpg'); 回车后就在Workspace空间得到一个名为

    yangzee的矩阵,大小为3250×3300×3。实际上就是RGB 图像格式的矩阵表示,

    可以用“ imshow”命令显示。如输入

    〉〉figure, imshow(yangzee); 回车后就出现该矩阵表示的图片,如图1 所示。

    图片以MATLAB 的矩阵形式表示后处理、分析都比较方便。如要切出来一

    部分就可用如下命令

    〉〉subyangzee1=yangzee(1:1600,:,:);

    〉〉figure, imshow(subyangzee1); 回车后就可得上部的图形,如图2 所示。

    如果要确定图中的某一位置,就可用如下的方法。输入

    〉〉subyangzee2=subyangzee1;

    〉〉subyangzee2(501:534,1634:1667,1:3)=255*ones(34,34,3);

    〉〉figure,imshow(subyangzee2); 回车后就显示出在图2 的相应位置存在百色

    方块,显然百色方块的大小为34×34。值得注意的是,百色方块中所有像素的灰

    度值均为255。这是因为此时图像矩阵采用的是整型变量,如图像矩阵采用浮点

    20

    图1. These ASTER images show a 60 km stretch of the Yangtze River in China just

    west of the Three Gorges Dam, the world ’ s largest. When the reservoir is filled in

    2012, water will rise to a height of 175 meters, and extend 600 kilometers. The

    reservoir will submerge two of the three world-famous gorges. The dam is being built

    to control the flooding of the Yangtze River, that has killed thousands of people in the

    past. The top image was acquired on May 20, 2001 during the dam ’ s construction before the reservoir was filled. The bottom image from March 25, 2003 shows the

    partial filling of the reservoir, including numerous side canyons.

    图2. The image was acquired on May 20, 2001 during the dam ’s construction and

    before the reservoir was filled.

    21

    图3. 在图2.的相应部位设置成了白色方块

    型变量,将该方块对应的矩阵的取值设为“ 1”即可得到同样的结果。

    (6) 在命令窗口查询帮助文件:如大概知道所需的 MATLAB 函数名称,

    但不知怎么使用或使用出现错误, 则可以在命令窗口键入“help 待查函数名称”,

    回车后就可得到该函数的使用帮助。例如,要查看函数“ imwrite ”的使用方法,

    可输入

    〉〉help imwrite 回车后得到如下帮助文件:

    IMWRITE Write image to graphics file.

    IMWRITE(A,FILENAME,FMT) writes the image A to the file specified by

    FILENAME in the format specified by FMT.

    A can be an M-by-N (grayscale image) or M-by-N-by-3 (color image)

    array. A cannot be an empty array. If the format specified is TIFF,

    IMWRITE can also accept an M-by-N-by-4 array containing color data

    that uses the CMYK color space.

    FILENAME is a string that specifies the name of the file.

    FMT is a string specifying the format of the file. See the reference

    22

    page, or the output of the IMFORMATS function, for a list of

    supported formats.

    ⋯⋯

    (7) 2009-10-26

    2、当前路径( Current Directory):显示当前MATLAB 正在工作的文件夹,

    管理当前文件夹里的文件。如用鼠标左击“当前路径”窗口中的文件,可将其激

    活,再用右键右击后选择需要的操作。如: “Open”、“Run”、“Rename”等。另

    外还可很方便的改变过当前路径。

    3、工作空间( Work Space):工作空间主要用来存储、管理、显示运算过程

    中程序所用的变量。当MATLAB 桌面被关闭后,工作空间的变量不会被自动保

    存,所以在关闭MATLAB 桌面前,必须将需要保留的变量、运算结果用“ save”

    命令存储。

    4、指令历史纪录( Command History):该窗口显示已经执行过的命令。

    应该指出的是, 在命令窗口执行的计算多是一条一条进行的, 虽然已可以使

    用循环,实际上很不方便。我们希望能将程序编成函数的形式在命令窗口执行,

    这就是M 脚本文件执行方式。

    二、M 脚本文件

    1、M 脚本文件的创立: M 脚本文件可通过鼠标左键单击MATLAB 左上角

    的白色“纸片”图标( New M-File )来创建,也可左键单击MATLAB 桌面工具

    栏中的“文件”按钮,打开下拉菜单后选择“ Open”,填写上文件名,文件格式

    选择为“ M-files(*.m) ”,然后存储。再在当前路径窗口打开该文件。在M 文件的

    顶端键入

    1 function [ y1,y2,⋯]=FunctionName(x1,x2,⋯)

    2 ⋯⋯

    就可开始编程。其中,第1 行中的x1,x2,⋯和y1,y2,⋯分别是函数的输入变量和输

    出变量。执行该函数时,输入变量x1,x2,⋯必须处在工作空间里,且应已经被赋

    值,函数执行完毕后的返回值y1,y2,⋯也会被存到工作空间。第2 行以后便是程

    23

    序的主体,用于求出输出变量y1,y2,⋯,如在主程序不能计算出输出变量,函数

    执行时会出现错误提示。

    1- function [Y]=Accumulate(X)

    2

    3- [M,N]=size(X)

    4

    5- Y{1}=sum(X,1);

    6- Y{2}=sum(X,2);

    7- Y{3}=sum(Y{1});

    8- Y{4}=sum(Y{2});

    9- Y{1}

    10- Y{2}

    11- Y{3}

    12- Y{4}

    其中,命令“ size”的作用是给出矩阵变量X 的行数和列数, Y 是元胞型数

    据,用花括号内的数值表示Y 的行或列数,此处行数均为1。元胞变量与矩阵变

    量有区别, 同一个元胞变量的每个单元可以同时存储任何格式的数据, 如矩阵型

    变量、字符型变量、浮点型变量、整型变量等,甚至还可以存储其它的元胞型变

    量,而矩阵中的每个单元只能是浮点数或整数。上例中的Y{1} 实际上是沿列进

    行聚集得到一个行向量, Y{2} 是沿行进行聚集得到一个列向量, Y{3} 是对行向

    量Y{1} 的行进行聚集, Y{4} 是对列向量Y{2} 的列进行聚集,如将矩阵X 看成

    是一个二维方体, Y{3} 和Y{4} 得到的都是顶点方体。

    2、M 脚本文件的调试:在编辑M 文件的窗口的上方有工具栏,其中的“ ?”

    就可用来设置调试的断点。可先将光标移到需设置断点的行,左击将该行激活,

    然后点击工具栏上“ ?”的按钮就可在该行设置断点。或者直接点击该行的标号

    后的“ -”也可以设置断点,然后就运行M 文件,当运行到该点时会中断,然后

    用工具栏中的调试工具——按步执行、继续执行、跳出断点等。在中断的过程中,

    可在命令空间输入运算变量,返回值就是在该中断状态运算变量当时存储的值。

    3、M 脚本文件的运行:将以上的函数表达式拷贝到命令窗口,事先给输入

    24

    变量赋值,回车便可得到函数的结果。如输入

    〉〉[Y]=Accumulate(X) 回车后就得到

    M =

    4

    N =

    6

    ans =

    10 14 18 22 26 30

    ans =

    21

    27

    33

    39

    ans =

    120

    ans =

    120

    Y =

    [1x6 double] [4x1 double] [120] [120]

    三、MATLAB 部分基本命令参考

    1、基本循环命令:例如for 循环

    for R = 1:N

    for C = 1:N

    A(R,C) = 1/(R+C-1);

    end

    end

    此外还有while 循环、switch 循环、if 语句等。

    2、操作符和特殊字符:

    25

    + 加

    - 减

    * 乘

    .* 数组乘

    ^ 矩阵幂

    .^ 数组幂

    / 右除或反斜杠

    = 赋值

    == 逻辑相等

    & 逻辑与

    | 逻辑或

    ~ 逻辑非

    3、基本数学函数:

    三角函数:

    sin 正弦

    asin 反正弦

    cos 余弦

    acos 反余弦

    指数函数:

    exp 指数

    log 自然对数

    log10 常用对数

    sqrt 平方根

    abs 绝对值

    数值函数:

    fix 朝零方向取整

    floor 朝负无穷大方向取整

    ceil 朝正无穷大方向取整

    round 朝最近的整数取整__

    雄关不惧 成败自含香
  • 相关阅读:
    Python的扩展接口[1] -> 串口通信
    Python的扩展接口[0] -> VISA仪器控制
    Python的工具包[2] -> matplotlib图像绘制 -> matplotlib 库及使用总结
    Python的工具包[1] -> pandas数据预处理 -> pandas 库及使用总结
    Python的工具包[0] -> numpy科学计算 -> numpy 库及使用总结
    Python的Web编程[1] -> Web服务器[0] -> Web 服务器与 CGI / WSGI
    Python的Web编程[0] -> Web客户端[1] -> Web 页面解析
    Python的Web编程[0] -> Web客户端[0] -> 统一资源定位符 URL
    Python与正则表达式[0] -> re 模块的正则表达式匹配
    解决Wamp的 Error D:wamp or PHP path 错误
  • 原文地址:https://www.cnblogs.com/cswangchen/p/7865067.html
Copyright © 2020-2023  润新知