zoukankan      html  css  js  c++  java
  • Todd's Matlab讲义第1讲:向量,函数和作图

    向量

    Matlab 中最基本的对象是矩阵,向量是特殊的矩阵。行向量是(1 imes n)矩阵,列向量是(m imes 1)矩阵。输入如下行向量:

    >> v=[0 1 2 3]
    

    回车,Matlab 将输出此行向量:

    v =
    
         0     1     2     3
    

    输入如下列向量:

    >> u = [9; 10; 11; 12; 13]
    

    按如下方式访问向量的元素:

    >> u(2)
    

    按如下方式改变元素的值:

    >> u(2)=47
    

    按如下方式提取多个连续向量:

    >> u(2:4)
    

    按如下方式将行向量变成列向量,也可以把列向量变成行向量:

    >> w=v'
    

    这个操作称为转置,'称为转置算符

    还可以用如下方法快速建立行向量:

    >> x=-1:0.5:1
    

    另一方法为:

    >> y=linspace(0,1,11)
    

    基本输出格式

    如果让输出更紧凑些,可以按如下命令:

    >> format compact
    

    如果要使结果输出更多位小数,输入如下命令:

    >> format long
    

    注意:这不会改变Matlab参与运算的数的位数,只是改变输出结果的小数位数。

    作图

    根据表格1中的数据,将表格中的数据赋给两个向量:

    >> x = [ 5 20 30 50 55 ]
    
    x =
    
         5    20    30    50    55
    
    >> y = [ 0.08 0.015 0.009 0.006 0.0055]
    
    y =
    
        0.0800    0.0150    0.0090    0.0060    0.0055
    
    T 5 20 30 50 55
    (mu) 0.08 0.015 0.009 0.006 0.0055

    表格1 温度与粘度

    输入如下命令可将数据绘成图形:

    >> plot(x,y)
    

    如果想把数据点用符号表示出来,例如:

    >> plot(x,y,'*')
    >> plot(x,y,'o')
    >> plot(x,y,'.')
    

    内置函数

    Matlab包含有大量的内置函数,如(sin())(exp()),等等,大部分函数的意义从名字一看便知。使用内置函数时,变量放在小括号里。比如:

    >> sin(pi)
    

    这是计算(sin pi)的值。

    如下命令:

    >> exp(0)
    

    这是计算(e^0)的值。

    Matlab内置函数还可以向量为自变量,比如:

    >> x=linspace(0,2*pi,40);
    >> y=sin(x);
    >> plot(x,y)
    

    输出结果为正弦函数在区间([0,2pi])上的图形。

    Matlab常用内置函数还有:(cos( )), ( an( )), (sinh( )), (cosh( )), (log( )) (自然对数), (log10( )) (以10为底的对数), asin( ) (反正弦函数), acos( ), atan( )。要了解函数细节,可以用help命令查询,比如:

    >> help plot
    >> help sin
    >> help
    

    内联函数

    Matlab提供多种方式自定义函数,一种方法是内联函数,这是在命令行窗口定义函数的一种方法。下面就是一个典型的内联函数:

    >> f = inline('2*x.^2 - 3*x + 1','x')
    

    这就定义了一个函数(f(x)=2x^2-3x+1)。如下计算单个函数值:

    >> f(2.23572)
    

    与内置函数一样,内联函数也可以带入向量,如:

    >> x = -2:.2:2
    >> f(x)
    

    这正是向量化的例子,即用一个向量表示多个数,一次操作向量的所有元素,而非一次处理一个元素,这是Matlab的优势之一。(f(x))可以处理向量(x),因为我们用 x.^2 表示 (x^2)。符号.使指数运算符 ^ 可以对向量各个元素做指数运算,比如[-2 -1.8 -1.6].^2运算实为$ [(-2)^2quad (-1.8)^2 quad (-1.6)^2 ]$,结果为[4 3.24 2.56]。而[-2 -1.8 -1.6]^2运算实为[-2 -1.8 -1.6][-2 -1.8 -1.6],程序将报错。运算.可用于.^,.*,./,但不需用于乘除标量,也不需用于加法+。

    函数图形也可以用 plot 命令得到,如数据作图一样:

    >> plot(x,y)
    

    需要注意的是,这里其实是把函数转换成数据然后作图的。机器作图都需要这一转换步骤。

    补充:Matlab R2015a 提示内联函数过时,未来将不支持内联函数。可以采用匿名函数来自定义函数。

    匿名函数

    输入如下命令可定义一个匿名函数:

    >>  afun1 = @(x) sin(x)/x
    

    计算函数值:

    >>  afun1(2)
    

    定义多个变量的匿名函数:

    >>  afun2 = @(x,y) (x^2 + y^2 + x*y)
    

    如果需要输入向量作为自变量,注意乘、除、幂运算分别需要用.*,./,.^进行。如:

    >>  npdf = @(x) (1/sqrt(2*pi))*exp(-0.5*x.^2)
    

    练习

    1 从工程教科书中选取一个数据表格,将数据赋予向量,然后作图,并标记坐标轴和标题。

    2 定义内联函数 (g(x) = x + cos(x^5))并作图。你得到的图有何问题?如何改善?

  • 相关阅读:
    机器学习模型评估指标汇总
    Linux 搭建Hadoop集群错误锦集
    机器学习--聚类系列--DBSCAN算法
    机器学习--聚类系列--层次聚类
    机器学习--聚类系列--K-means算法
    数据分析--降维--LDA和PCA
    自然语言处理--Word2vec(一)
    自然语言处理--TF-IDF(关键词提取)
    Android学习笔记之BitmapFactory.Options实现图片资源的加载...
    Android学习笔记之蓝牙通信...
  • 原文地址:https://www.cnblogs.com/joyfulphysics/p/4853049.html
Copyright © 2011-2022 走看看