精华内容
下载资源
问答
  • 常用激活函数(激励函数)理解与总结

    万次阅读 多人点赞 2018-05-13 23:07:19
    学习神经网络的时候我们总是听到激活函数这个词,而且很多资料都会提到常用的激活函数,比如Sigmoid函数、tanh函数、Relu函数。那么我们就来详细了解下激活函数方方面面的知识。本文的内容包括几个部分: 什么是...

    引言

    学习神经网络的时候我们总是听到激活函数这个词,而且很多资料都会提到常用的激活函数,比如Sigmoid函数、tanh函数、Relu函数。那么我们就来详细了解下激活函数方方面面的知识。本文的内容包括几个部分:

    1. 什么是激活函数?
    2. 激活函数的用途(为什么需要激活函数)?
    3. 有哪些激活函数,都有什么性质和特点?
    4. 应用中如何选择合适的激活函数?

    如果你对以上几个问题不是很清楚,下面的内容对你是有价值的。

    什么是激活函数?

    首先要了解神经网络的基本模型。(不熟悉的同学请去看本人另外一篇介绍:人工神经网络基本原理
    单一神经元模型如下图所示。
    这里写图片描述
    神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。

    激活函数的用途(为什么需要激活函数)?

    如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了,那么网络的逼近能力就相当有限。正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络表达能力就更加强大(不再是输入的线性组合,而是几乎可以逼近任意函数)。

    有哪些激活函数,都有什么性质和特点?

    早期研究神经网络主要采用sigmoid函数或者tanh函数,输出有界,很容易充当下一层的输入。
    近些年Relu函数及其改进型(如Leaky-ReLU、P-ReLU、R-ReLU等)在多层神经网络中应用比较多。下面我们来总结下这些激活函数:

    Sigmoid函数

    Sigmoid 是常用的非线性的激活函数,它的数学形式如下:
    f ( z ) = 1 1 + e − z f(z)=\frac{1}{1+e^{-z}} f(z)=1+ez1
    Sigmoid的几何图像如下:
    这里写图片描述
    特点:
    它能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1.
    缺点:
    sigmoid函数曾经被使用的很多,不过近年来,用它的人越来越少了。主要是因为它固有的一些 缺点。
    缺点1:在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大。首先来看Sigmoid函数的导数,如下图所示:
    这里写图片描述
    如果我们初始化神经网络的权值为 [ 0 , 1 ] [0,1] [0,1] 之间的随机值,由反向传播算法的数学推导可知,梯度从后向前传播时,每传递一层梯度值都会减小为原来的0.25倍,如果神经网络隐层特别多,那么梯度在穿过多层后将变得非常小接近于0,即出现梯度消失现象;当网络权值初始化为 ( 1 , + ∞ ) (1,+∞) (1,+) 区间内的值,则会出现梯度爆炸情况。
    详细数学分析见文章:http://neuralnetworksanddeeplearning.com/chap5.html 中文译文:深度神经网络为何很难训练
    缺点2:Sigmoid 的 output 不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。 产生的一个结果就是:如 x > 0 ,   f = w T x + b x>0, \ f= w^Tx+b x>0, f=wTx+b,那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。 当然了,如果按batch去训练,那么那个batch可能得到不同的信号,所以这个问题还是可以缓解一下的。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的梯度消失问题相比还是要好很多的。
    缺点3:其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。

    tanh函数

    tanh函数解析式:
    t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} tanh(x)=ex+exexex
    tanh函数及其导数的几何图像如下图:
    tanh(x)及其导数的几何图像
    tanh读作Hyperbolic Tangent,它解决了Sigmoid函数的不是zero-centered输出问题,然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。

    Relu函数

    Relu函数的解析式:
    R e l u = m a x ( 0 , x ) Relu=max(0,x) Relu=max(0,x)
    Relu函数及其导数的图像如下图所示:
    这里写图片描述
    ReLU函数其实就是一个取最大值函数,注意这并不是全区间可导的,但是我们可以取sub-gradient,如上图所示。ReLU虽然简单,但却是近几年的重要成果,有以下几大优点:
    1) 解决了gradient vanishing问题 (在正区间)
    2)计算速度非常快,只需要判断输入是否大于0
    3)收敛速度远快于sigmoid和tanh

    ReLU也有几个需要特别注意的问题:
    1)ReLU的输出不是zero-centered
    2)Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生: (1) 非常不幸的参数初始化,这种情况比较少见 (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。

    尽管存在这两个问题,ReLU目前仍是最常用的activation function,在搭建人工神经网络的时候推荐优先尝试!

    Leaky ReLU函数(PReLU)

    函数表达式: f ( x ) = m a x ( α x , x ) f(x)=max(\alpha x,x) f(x)=max(αx,x)
    Leaky Relu函数及其导数的图像如下图所示:
    (有同学在评论中反映下图有误,其实没有错误,左半边直线斜率非常接近0,所以看起来像是平的。就不改了, α = 0.01 \alpha=0.01 α=0.01看起来就是这样的。感谢大家提意见 ^ _ ^)
    这里写图片描述
    人们为了解决Dead ReLU Problem,提出了将ReLU的前半段设为 α x \alpha x αx而非0,通常 α = 0.01 \alpha=0.01 α=0.01。另外一种直观的想法是基于参数的方法,即 P a r a m e t r i c R e L U : f ( x ) = max ⁡ ( α x , x ) Parametric ReLU:f(x) = \max(\alpha x, x) ParametricReLU:f(x)=max(αx,x),其中 α \alpha α
    可由方向传播算法学出来。理论上来讲,Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当中,并没有完全证明Leaky ReLU总是好于ReLU。

    ELU (Exponential Linear Units) 函数

    函数表达式:
    f ( x ) = { x , if  x > 0 α ( e x − 1 ) , otherwise f(x)= \begin{cases}x,& \text{if } x > 0\\ \alpha(e^x - 1), & \text{otherwise} \end{cases} f(x)={x,α(ex1),if x>0otherwise
    函数及其导数的图像如下图所示:
    这里写图片描述

    ELU也是为解决ReLU存在的问题而提出,显然,ELU有ReLU的基本所有优点,以及:

    不会有Dead ReLU问题
    输出的均值接近0,zero-centered
    

    它的一个小问题在于计算量稍大。类似于Leaky ReLU,理论上虽然好于ReLU,但在实际使用中目前并没有好的证据ELU总是优于ReLU。

    MaxOut函数

    这个函数可以参考论文《maxout networks》,Maxout是深度学习网络中的一层网络,就像池化层、卷积层一样等,我们可以把maxout 看成是网络的激活函数层,我们假设网络某一层的输入特征向量为:X=(x1,x2,……xd),也就是我们输入是d个神经元。Maxout隐藏层每个神经元的计算公式如下:
    这里写图片描述

    上面的公式就是maxout隐藏层神经元i的计算公式。其中,k就是maxout层所需要的参数了,由我们人为设定大小。就像dropout一样,也有自己的参数p(每个神经元dropout概率),maxout的参数是k。公式中Z的计算公式为:

    这里写图片描述

    权重w是一个大小为(d,m,k)三维矩阵,b是一个大小为(m,k)的二维矩阵,这两个就是我们需要学习的参数。如果我们设定参数k=1,那么这个时候,网络就类似于以前我们所学普通的MLP网络。
    我们可以这么理解,本来传统的MLP算法在第i层到第i+1层,参数只有一组,然而现在我们不这么干了,我们在这一层同时训练n组的w、b参数,然后选择激活值Z最大的作为下一层神经元的激活值,这个max(z)函数即充当了激活函数。

    应用中如何选择合适的激活函数?

    这个问题目前没有确定的方法,凭一些经验吧。
    1)深度学习往往需要大量时间来处理大量数据,模型的收敛速度是尤为重要的。所以,总体上来讲,训练深度学习网络尽量使用zero-centered数据 (可以经过数据预处理实现) 和zero-centered输出。所以要尽量选择输出具有zero-centered特点的激活函数以加快模型的收敛速度。
    2)如果使用 ReLU,那么一定要小心设置 learning rate,而且要注意不要让网络出现很多 “dead” 神经元,如果这个问题不好解决,那么可以试试 Leaky ReLU、PReLU 或者 Maxout.
    3)最好不要用 sigmoid,你可以试试 tanh,不过可以预期它的效果会比不上 ReLU 和 Maxout.

    参考资料

    1.聊一聊深度学习的activation function—夏飞
    2.http://blog.csdn.net/cyh_24/article/details/50593400
    3.http://www.cnblogs.com/tornadomeet/p/3428843.html
    4.《maxout networks》

    展开全文
  • 神经网络常用激活函数及其应用举例2017年07月27日 23:44:53阅读数:1843神经网络中数据从数据层到最后输出层的流动过程其实就是数据从一种形态到另一种形态,从一个维度到另一个维度的变换过程,例如在Minst数据集...

    神经网络常用激活函数及其应用举例

    神经网络中数据从数据层到最后输出层的流动过程其实就是数据从一种形态到另一种形态,从一个维度到另一个维度的变换过程,例如在Minst数据集训练中,就是把28*28维的图像数据经过变换,映射成0~9之间的一个数字。完成这种数据变换的一个重要工具就是激活函数。


    一个典型的人工神经元的模型可以用下图表述:



    • 图中X1~Xn是神经元的输入信号;
    • θ表示一个阈值,或称为偏置(bias),偏置的设置是为了正确分类样本,是模型中一个重要的参数;
    • ∑表示各输入信号X乘以权重后的累加和,是一个线性变换;
    • f(*)称为激活函数或激励函数(Activation Function),激活函数的主要作用是完成数据的非线性变换,解决线性模型的表达、分类能力不足的问题;
    激活函数的主要作用是改变之前数据的线性关系,如果网络中全部是线性变换,则多层网络可以通过矩阵变换,直接转换成一层神经网络,所以激活函数的存在,使得神经网络的“多层”有了实际的意义,使网络更加强大,增加网络的能力,使它可以学习复杂的事物,复杂的数据,以及表示输入输出之间非线性的复杂的任意函数映射。
    激活函数的另一个重要的作用是执行数据的归一化,将输入数据映射到某个范围内,再往下传递,这样做的好处是可以限制数据的扩张,防止数据过大导致的溢出风险。

    常见的激活函数


    1.  Sigmoid


    通过Sigmoid的函数图像我们可以直观的看到,当输入值X>5或者X<-5的时候,函数的变化曲线已经非常平缓了,这就意味着此时的偏导(即切线的斜率)非常小接近0,这就导致误差反向传播无法通过导数传递到上一层,进而导致训练无法正常训练(导数为0无法更新参数)。为了避免梯度饱和效应的产生,Hinton等人与2010年又提出了ReLU函数,可以有效的避免梯度饱和产生

    Sigmod有两个主要缺点,一是Sigmoid容易过饱和,丢失梯度。从Sigmoid的示意图上可以看到,神经元的活跃度在0和1处饱和,梯度接近于0,这样在反向传播时,很容易出现梯度消失的情况,导致训练无法完整;二是Sigmoid的输出均值不是0,基于这两个缺点,SIgmoid使用越来越少了。


    2. tanh




    tanh是Sigmoid函数的变形,tanh的均值是0,在实际应用中有比Sigmoid更好的效果。


    3. ReLU



    ReLU是近来比较流行的激活函数,当输入信号小于0时,输出为0;当输入信号大于0时,输出等于输入。


    ReLU的优点:

    1. ReLU是部分线性的,并且不会出现过饱和的现象,使用ReLU得到的随机梯度下降法(SGD)的收敛速度比Sigmodi和tanh都快。

    2. ReLU只需要一个阈值就可以得到激活值,不需要像Sigmoid一样需要复杂的指数运算。

    ReLU的缺点:

    在训练的过程中,ReLU神经元比价脆弱容易失去作用。例如当ReLU神经元接收到一个非常大的的梯度数据流之后,这个神经元有可能再也不会对任何输入的数据有反映了,所以在训练的时候要设置一个较小的合适的学习率参数。


    4. Leaky-ReLU



    相比ReLU,Leaky-ReLU在输入为负数时引入了一个很小的常数,如0.01,这个小的常数修正了数据分布,保留了一些负轴的值,在Leaky-ReLU中,这个常数通常需要通过先验知识手动赋值。


    5. Maxout




    Maxout是在2013年才提出的,是一种激发函数形式,一般情况下如果采用Sigmoid函数的话,在前向传播过程中,隐含层节点的输出表达式为:



    其中W一般是二维的,这里表示取出的是第i列,下标i前的省略号表示对应第i列中的所有行。而在Maxout激发函数中,在每一个隐含层和输入层之间又隐式的添加了一个“隐含层”,这个“隐隐含层”的激活函数是按常规的Sigmoid函数来计算的,而Maxout神经元的激活函数是取得所有这些“隐隐含层”中的最大值,如上图所示。

    Maxout的激活函数表示为:


    f(x)=max(wT1x+b1,wT2x+
    b2
    )


    可以看到,ReLU 和 Leaky ReLU 都是它的一个变形(比如, 的时候,就是 ReLU)。

    Maxout的拟合能力是非常强的,它可以拟合任意的的凸函数,优点是计算简单,不会过饱和,同时又没有ReLU的缺点(容易死掉),但Maxout的缺点是过程参数相当于多了一倍。


    其他一些激活函数列表:



    激活函数应用


    这里以最简单的只有一个神经元(包含激活函数)的网络为例,说明一下激活函数的工作过程。

    假设神经元的输入是一个4维的向量 X,其中的值为0或者1,并且只取4中样本:

    • x1=[1,0,0,0]
    • x2=[0,1,0,0]
    • x3=[0,0,1,0]
    • x4=[0,0,0,1]


    对这一组样本,采用一个很小的随机数来模拟生成20000个样本,同时,将神经元的4个输出值映射到[0,1],即4个分类分别是[0.25,0.5,0.75,1]。

    代码实现如下:

    [cpp]  view plain  copy
    1. #include <iostream>  
    2. #include <vector>  
    3.   
    4. using namespace std;  
    5.   
    6. vector<vector<double>> inputData;  
    7. vector<double> weight;  
    8. double actual_output;  //网络的实际输出  
    9. vector<double> input;  
    10.   
    11. //生成numofSample个样本,一共分为numofLable类,每个样本的标签是当前样本的下标i%numofLable  
    12. void getSamplesData(int numofSamples, int numofLable)  
    13. {  
    14.     const int iterations = numofSamples; // 样本数量  
    15.     for (int i = 0; i < iterations; i++)  
    16.     {  
    17.         int index = i % numofLable;  
    18.         vector<double> dvect(numofLable, 0);  
    19.         dvect[index] = 1;  
    20.         for (size_t i = 0; i != dvect.size(); i++)  
    21.         {  
    22.             dvect[i] += (5e-3*rand() / RAND_MAX - 2.5e-3);  
    23.         }  
    24.         inputData.push_back(dvect);  
    25.     }  
    26. }  
    27.   
    28. //初始化初始权重,包括4个节点和1个偏置,随机设置为0~0.05之间的一个值  
    29. void intialWeight()  
    30. {  
    31.     cout << "初始化权重为:" << endl;  
    32.     // 4个连结和一个偏置w0  
    33.     for (int i = 0; i != 5; i++)  
    34.     {  
    35.         weight.push_back(0.05*rand() / RAND_MAX);  
    36.         cout << weight[i] << endl;  
    37.     }  
    38. }  
    39.   
    40. //前向计算,输入时数据层的4维的训练数据,actual_output是网络当前的输出  
    41. void cmtForward(const vector<double>& inVect)  
    42. {  
    43.     double dsum = weight[4];//先把偏置加上  
    44.     for (size_t i = 0; i != inVect.size(); i++)  
    45.     {  
    46.         dsum += (inVect[i] * weight[i]);  
    47.     }  
    48.     actual_output = 1 / (1 + exp(-1 * dsum));   // S函数的非线性变换  
    49.     //actual_output = 2 * (1 / (1 + exp(-2 * dsum))) - 1;  //T函数的非线性变换  
    50.     //dsum > 0 ? actual_output = dsum : actual_output = 0;  //R函数的非线性变换  
    51. }  
    52.   
    53. //权重调整,相当于后向计算,输入时训练数据和期望的输出  
    54. void updataWeight(const vector<double>& inVect, const double true_output)  
    55. {  
    56.     double learnRate = 0.05; // 权重更新参数  
    57.     for (size_t i = 0; i != weight.size() - 1; i++)  
    58.     {  
    59.         weight[i] += (learnRate*(true_output - actual_output)*actual_output*(1 - actual_output)*inVect[i]);  
    60.     }  
    61.     // w0单独计算  
    62.     weight[4] += (learnRate*(true_output - actual_output)*actual_output*(1 - actual_output) * 1);  
    63. }  
    64.   
    65.   
    66. void main()  
    67. {  
    68.     getSamplesData(20000, 4);  //生成20000个数据,分为4类  
    69.     intialWeight();    //初始化权重,随机生成5个0~0.05之间的数值  
    70.   
    71.     //执行20000次迭代  
    72.     for (int i = 0; i < 20000; i++)  
    73.     {  
    74.         input = inputData[i];  
    75.         double lable = (double)(i % 4) / 4 + 0.25;  //数据标签转换到0~1  
    76.   
    77.         cmtForward(input);    //前向传播计算  
    78.         updataWeight(input, lable);   //权重调整  
    79.   
    80.         if (i % 111 == 0)  
    81.         {  
    82.             cout << "当前执行第 " << i << " 次迭代" << endl;  
    83.             cout << "输入数据: [ " << input[0] << "," << input[1] << "," << input[2] << "," << input[3]  
    84.                 << " ]" << "   " << "网络输出:" << actual_output << endl << endl;  
    85.         }  
    86.     }  
    87.     cout << "优化后的权重系数:[ " << weight[0] << "," << weight[1] << "," << weight[2] << "," <<  
    88.         weight[3] << " ]" << "   偏置: " << weight[4] << endl;  
    89.     system("pause");  
    90. }  

    在前向计算cmtForward函数中,使用S函数,注释掉的分别是T函数和R函数。

    S函数的迭代实现结果:



    T函数的迭代实现结果:



    R函数的迭代实现结果:



    经过迭代优化,3种激活函数对输入的数据的响应基本都映射在0.25,0.5,0.75,0.96左右,分别对应1,2,3,4分类,都可以对输入正确分类。3种激活函数迭代后分别生成3组权重系数(加偏置系数),不同激活函数优化出的权重系数不同。

    原文:https://blog.csdn.net/dcrmg/article/details/76222576

    参考:https://www.jianshu.com/p/6033a5d3ad4b

    展开全文
  • 拉普拉斯变换是控制工程常用的数学工具,它除了可以很方便的求解微分方程外,还引出了经典控制理论的数学基础——传递函数。但这个变换对于初学者来说却十分头疼,定义复杂不说,完全看不出有什么含义。我们先来看下...

    4b0e6f39c17300f1b2db4a59f4509f2e.png

    拉普拉斯变换是控制工程常用的数学工具,它除了可以很方便的求解微分方程外,还引出了经典控制理论的数学基础——传递函数。

    但这个变换对于初学者来说却十分头疼,定义复杂不说,完全看不出有什么含义。

    我们先来看下通常教材里面是如何描述拉普拉斯变化的。

    设实函数

    ,若满足:

    (1)当

    时,

    (2)当

    时,实函数
    的积分
    的某一域内收敛。

    则定义

    的拉普拉斯变换为

    并记作

    ,其中算子
    是一复数。

    看完上面这一段特别高深如坠云端的描述,是不是有一种这个世界特别不真实的错觉?好好的函数

    ,非要整个积分,还要带上一个指数函数,这是炫技么?数学家的脑洞都是怎么开的?

    ce61637ce806bc132a2d3f6861d389fa.png

    莫慌,这里我先推荐一篇文章,作者对拉普拉斯变换作了深入浅出的讲解,可以加深大家对这个sao操作的理解。

    https://zhuanlan.zhihu.com/p/48314585​zhuanlan.zhihu.com
    7e3befb46e76d019e858e64296dbe804.png

    简单来说,就是叫拉普拉斯的这个人帮我们找到了一种方法,将看起来很费劲的微分算子和积分算子用我们看起来顺眼的符号代替,

    代替
    代替
    ,然后复杂的高等函数就变成了初等函数。

    有了拉氏变换就会有反变换,怎么把替换掉的

    倒腾回去就是拉氏反变换,这个公式看起来有点复杂
    ,记作
    。是不是完全记不住?没有关系,要进行反变换查表就可以了,如果还觉得麻烦,那就用计算机求解。(见附表2)

    拉普拉斯变换在工程中有哪些实际作用?

    (1)求解线性微分方程

    线性微分方程

    ,且初始条件
    ,如何求y的表达式?

    第一步:对微分方程两边进行拉普拉斯变换,得到代数方程(利用附表1的叠加定理,微分定理)

    第二步:将初始条件代入,求解

    第三步:求拉普拉斯反变换(依然是查附表2)

    (2)引出传递函数

    设系统的输入量为

    ,输出量为
    ,则它的传递函数是指初始条件为零时,输出量的拉普拉斯变换式
    和输入量的拉普拉斯变换式
    之比,并记作
    :

    只要我们能写出系统的微分表达式,就可以求出其传递函数,这样大大方便了我们对控制系统进行数学描述。

    例如常见的弹簧-质量-阻尼机械系统(M-B-K系统):

    150df8bd322bd3a9fc34ee572ab7cfe5.png

    图中K,M,B分别为系统的弹簧刚度,质量和阻尼系数,

    为输入作用力,
    为输出位移。

    由牛顿定律可得

    ,等式两边进行拉普拉斯变换即可得到系统得到传递函数

    传递函数在工程建模中经常遇到,需要牢记。

    <附表1-拉普拉斯运算定理>

    1.叠加定理:

    2.比例定理:若

    ,则

    3.微分定理: 若

    ,则

    式子中

    一般情况下,

    当初始条件

    时,则

    4.积分定理:若

    ,则
    ,式子中
    处的值

    一般情况下,

    若满足

    ,则

    5.位移定理:若

    , 则

    6.延迟定理:若

    ,则

    7.卷积定理:若原函数是

    的 卷积,则

    这里补充说明下何谓卷积?其实卷积就是一种运算,再次借助大神的回答来加深理解。

    卷积应用相当广泛,现在很热门的图像处理技术都要用到相关算法。

    如何通俗易懂地解释卷积?​www.zhihu.com
    2035bc76814c114d51d18731c557478f.png

    8.终值定理:若函数

    及其一阶导数都是可拉普拉斯变换的,则
    的终值为

    9.初值定理:若函数

    及其一阶导数都是可拉普拉斯变换的,则
    的初值为

    <附表2-拉普拉斯变换表>

    a5a18a5a6d465abc4bb9d267efb2da3f.png

    4c6707e18258ccb70dc3b86752683b9e.png

    3886e33c7a13813ec45eec9a58d4eafd.png

    fa260ddb113aedcf92e0f9da12d21d1c.png
    展开全文
  • matlab常用函数与常用指令大全

    万次阅读 多人点赞 2016-05-06 14:11:58
    matlab常用函数与常用指令大全 matlab常用函数- - 1、特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN 非数 ...
    matlab常用函数与常用指令大全
    



    matlab常用函数- -
    1、特殊变量与常数
    ans 计算结果的变量名
    computer 确定运行的计算机
    eps 浮点相对精度
    Inf 无穷大
    I 虚数单位
    inputname 输入参数名
    NaN 非数
    nargin 输入参数个数
    nargout 输出参数的数目
    pi 圆周率
    nargoutchk 有效的输出参数数目
    realmax 最大正浮点数
    realmin 最小正浮点数
    varargin 实际输入 的参量
    varargout 实际返回的参量
    操作符与特殊字符
    + 加 - 减
    * 矩阵乘法 .* 数组乘(对应元素相乘)
    ^ 矩阵幂 .^ 数组幂(各个元素求幂)
    \ 左除或反斜杠 / 右除或斜面杠
    ./ 数组除(对应元素除)

    kron Kronecker张量积
    : 冒号 () 圆括
    [] 方括 . 小数点
    .. 父目录 ... 继续
    , 逗号(分割多条命令) ; 分号(禁止结果显示)
    % 注释 ! 感叹号
    ' 转置或引用 = 赋值
    == 相等 <> 不等于
    & 逻辑与 | 逻辑或
    ~ 逻辑非 xor 逻辑异或

    2、基本数学函数
    abs 绝对值和复数模长
    acos,acodh 反余弦,反双曲余弦
    acot,acoth 反余切,反双曲余切
    acsc,acsch 反余割,反双曲余割
    angle 相角
    asec,asech 反正割,反双曲正割
    secant 正切
    asin,asinh 反正弦,反双曲正弦
    atan,atanh 反正切,双曲正切
    tangent 正切
    atan2 四象限反正切
    ceil 向着无穷大舍入
    complex 建立一个复数
    conj 复数配对
    cos,cosh 余弦,双曲余弦
    csc,csch 余切,双曲余切
    cot,coth 余切,双曲余切
    exp 指数
    fix 朝0方向取整
    floor 朝负无穷取整
    *** 最大公因数
    imag 复数值的虚部
    lcm 最小公倍数
    log 自然对数
    log2 以2为底的对数
    log10 常用对数
    mod 有符号的求余

    nchoosek 二项式系数和全部组合数
    real 复数的实部
    rem 相除后求余
    round 取整为最近的整数
    sec,sech 正割,双曲正割
    sign 符号数
    sin,sinh 正弦,双曲正弦
    sqrt 平方根
    tan,tanh 正切,双曲正切
    3、基本矩阵和矩阵操作
    blkding 从输入参量建立块对角矩阵
    eye 单位矩阵
    linespace 产生线性间隔的向量
    logspace 产生对数间隔的向量
    numel 元素个数
    ones 产生全为1的数组
    rand 均匀颁随机数和数组
    randn 正态分布随机数和数组
    zeros 建立一个全0矩阵 colon) 等间隔向量
    cat 连接数组
    diag 对角矩阵和矩阵对角线
    fliplr 从左自右翻转矩阵
    flipud 从上到下翻转矩阵
    repmat 复制一个数组

    reshape 改造矩阵
    roy90 矩阵翻转90度

    tril 矩阵的下三角
    triu 矩阵的上三角

    dot 向量点集
    cross 向量叉集

    ismember 检测一个集合的元素
    intersect 向量的交集

    setxor 向量异或集
    setdiff 向是的差集

    union 向量的并集
    数值分析和傅立叶变换
    cumprod 累积

    cumsum 累加
    cumtrapz 累计梯形法计算数值微分

    factor 质因子
    inpolygon 删除多边形区域内的点

    max 最大值
    mean 数组的均值

    mediam 中值
    min 最小值

    perms 所有可能的转换
    polyarea 多边形区域

    primes 生成质数列表
    prod 数组元素的乘积

    rectint 矩形交集区域
    sort 按升序排列矩阵元素

    sortrows 按升序排列行
    std 标准偏差

    sum 求和
    trapz 梯形数值积分

    var 方差
    del2 离散拉普拉斯

    diff 差值和微分估计
    gradient 数值梯度

    cov 协方差矩阵
    corrcoef 相关系数

    conv2 二维卷积
    conv 卷积和多项式乘法

    filter IIR或FIR滤波器
    deconv 反卷积和多项式除法

    filter2 二维数字滤波器
    cplxpair 将复数值分类为共轭对

    fft 一维的快速傅立叶变换
    fft2 二维快速傅立叶变换

    fftshift 将FFT的DC分量移到频谱中心
    ifft 一维快速反傅立叶变换

    ifft2 二维傅立叶反变换
    ifftn 多维快速傅立叶变换

    ifftshift 反FFT偏移
    nextpow2 最靠近的2的幂次

    unwrap 校正相位角


    多项式与插值
    conv 卷积和多项式乘法

    roots 多项式的根
    poly 具有设定根的多项式

    polyder 多项式微分
    polyeig 多项式的特征根

    polyfit 多项式拟合
    polyint 解析多项式积分

    polyval 多项式求值
    polyvalm 矩阵变量多项式求值

    residue 部分分式展开
    interp1 一维插值

    interp2 二维插值
    interp3 三维插值

    interpft 使用FFT的一维插值
    interpn 多维插值

    meshgrid 为3维点生成x和y的网格
    ndgrid 生成多维函数和插值的数组

    pchip 分段3次Hermite插值多项式
    ppval 分段多项式的值

    spline 3次样条数据插值


    绘图函数
    bar 竖直条图

    barh 水平条图
    hist 直方图

    histc 直方图计数
    hold 保持当前图形

    loglog x,y对数坐标图
    pie 饼状图

    plot 绘二维图
    polar 极坐标图

    semilogy y轴对数坐标图
    semilogx x轴对数坐标

    subplot 绘制子图
    bar3 数值3D竖条图

    bar3h 水平3D条形图
    comet3 3D慧星图

    cylinder 圆柱体
    fill3 填充的3D多边形

    plot3 3维空间绘图
    quiver3 3D震动(速度)图

    slice 体积薄片图
    sphere 球

    stem3 绘制离散表面数据
    wate***ll 绘制瀑布

    trisurf 三角表面
    clabel 增加轮廓标签到等高线图中

    datetick 数据格式标记
    grid 加网格线

    gtext 用鼠标将文本放在2D图中
    legend 图注

    plotyy 左右边都绘Y轴
    title 标题

    xlabel X轴标签
    ylabel Y轴标签

    zlabel Z轴标签
    contour 等高线图

    contourc 等高线计算
    contourf 填充的等高线图

    hidden 网格线消影
    meshc 连接网格/等高线

    mesh 具有参考轴的3D网格
    peaks 具有两个变量的采样函数

    surf 3D阴影表面图
    su***ce 建立表面低层对象

    surfc 海浪和等高线的结合
    surfl 具有光照的3D阴影表面

    trimesh 三角网格图
    1 常用指令(General Purpose Commands)
    1.1 通用信息查询(General information)
    demo 演示程序
    help 在线帮助指令
    helpbrowser 超文本文档帮助信息
    helpdesk 超文本文档帮助信息
    helpwin 打开在线帮助窗
    info MATLAB 和MathWorks 公司的信息
    subscribe MATLAB 用户注册
    ver MATLAB 和TOOLBOX 的版本信息
    version MATLAB 版本
    whatsnew 显示版本新特征
    1.2 工作空间管理(Managing the workspace)
    clear 从内存中清除变量和函数
    exit 关闭MATLAB
    load 从磁盘中调入数据变量
    pack 合并工作内存中的碎块
    quit 退出MATLAB
    save 把内存变量存入磁盘
    who 列出工作内存中的变量名
    whos 列出工作内存中的变量细节
    workspace 工作内存浏览器
    1.3 管理指令和函数(Managing commands and functions)
    edit 矩阵编辑器
    edit 打开M 文件
    inmem 查看内存中的P 码文件
    mex 创建MEX 文件
    open 打开文件
    pcode 生成P 码文件
    type 显示文件内容
    what 列出当前目录上的M、MAT、MEX 文件
    which 确定指定函数和文件的位置
    1.4 搜索路径的管理(Managing the seach patli)
    addpath 添加搜索路径
    rmpath 从搜索路径中删除目录
    path 控制MATLAB 的搜索路径
    pathtool 修改搜索路径
    1.5 指令窗控制(Controlling the command window)
    beep 产生beep 声
    echo 显示命令文件指令的切换开关
    diary 储存MATLAB 指令窗操作内容
    format 设置数据输出格式
    more 命令窗口分页输出的控制开关
    1.6 操作系统指令(Operating system commands)
    cd 改变当前工作目录
    computer 计算机类型
    copyfile 文件拷贝
    delete 删除文件
    dir 列出的文件
    dos 执行dos 指令并返还结果
    getenv 给出环境值
    ispc MATLAB 为PC(Windows)版本则为真
    isunix MATLAB 为Unix 版本则为真
    mkdir 创建目录
    pwd 改变当前工作目录
    unix 执行unix 指令并返还结果
    vms 执行vms dcl 指令并返还结果
    web 打开web 浏览器
    ! 执行外部应用程序
    2 运算符和特殊算符(Operators and special characters)
    2.1 算术运算符(Arithmetic operators)
    + 加
    - 减
    * 矩阵乘
    .* 数组乘
    ^ 矩阵乘方
    .^ 数组乘方
    \ 反斜杠或左除
    / 斜杠或右除
    ./或.\ 数组除
    张量积
    [注]本表第三栏括号中的字符供在线救助时help 指令引述用
    2.2 关系运算符(Relational operators)
    = = 等号
    ~= 不等号
    < 小于
    > 大于
    <= 小于或等于
    >= 大于或等于
    2.3 逻辑操作(Logical operators)
    & 逻辑与
    | 逻辑或
    ~ 逻辑非
    xor 异或
    any 有非零元则为真
    all 所有元素均非零则为真
    2.4 特殊算符(Special characters)
    : 冒号
    ( ) 圆括号
    [ ] 方括号
    { } 花括号
    @ 创建函数句柄
    . 小数点
    . 构架域的关节点
    .. 父目录
    ⋯ 续行号
    , 逗号
    ; 分号
    % 注释号
    ! 调用操作系统命令
    = 赋值符号
    ˊ 引号
    ˊ 复数转置号
    .ˊ 转置号
    [,] 水平串接
    [;] 垂直串接
    ( ),{ },. 下标赋值
    ( ),{ },. 下标标识
    subsindex 下标标识
    3 编程语言结构(Programming language constructs)
    3.1 控制语句(Control flow)
    break 终止最内循环
    case 同switch 一起使用
    catch 同try 一起使用
    continue 将控制转交给外层的for 或while 循环
    else 同if 一起使用
    elseif 同if 一起使用
    end 结束for,while,if 语句
    for 按规定次数重复执行语句
    if 条件执行语句
    otherwise 可同switch 一起使用
    return 返回
    switch 多个条件分支
    try try-cathch 结构
    while 不确定次数重复执行语句
    3.2 计算运行(Evaluation and execution)
    assignin 跨空间赋值
    builtin 执行内建的函数
    eval 字符串宏指令
    evalc 执行MATLAB 字符串
    evalin 跨空间计算串表达式的值
    feval 函数宏指令
    run 执行脚本文件
    3.3 脚本文件、函数及变量(Scripts,function,and variables)
    exist 检查变量或函数是否被定义
    function 函数文件头
    global 定义全局变量
    isglobal 若是全局变量则为真
    iskeyword 若是关键字则为真
    mfilename 正在执行的M 文件的名字
    persistent 定义永久变量
    script MATLAB 命令文件
    3.4 宗量处理(Augument handling)
    inputname 实际调用变量名
    nargchk 输入变量个数检查
    nargin 函数输入宗量的个数
    nargout 函数输出宗量的个数
    nargoutchk 输出变量个数检查
    varagin 输入宗量
    varagout 输出宗量
    3.5 信息显示(Message display)
    disp 显示矩阵和文字内容
    display 显示矩阵和文字内容的重载函数
    error 显示错误信息
    fprintf 把格式化数据写到文件或屏幕
    lasterr 最后一个错误信息
    lastwarn 最后一个警告信息
    sprintf 按格式把数字转换为串
    warning 显示警告信息
    3.6 交互式输入(Interactive input)
    input 提示键盘输入
    keyboard 激活键盘做为命令文件
    pause 暂停
    uicontrol 创建用户界面控制
    uimenu 创建用户界面菜单
    4 基本矩阵函数和操作(Elementary matrices and matrix manipulation)
    4.1 基本矩阵(Elementary matrices)
    eye 单位阵
    linspace 线性等分向量
    logspace 对数等分向量
    meshgrid 用于三维曲面的分格线坐标
    ones 全1 矩阵
    rand 均匀分布随机阵
    randn 正态分布随机阵
    repmat 铺放模块数组
    zeros 全零矩阵
    : 矩阵的援引和重排
    4.2 矩阵基本信息(Basic array information)
    disp 显示矩阵和文字内容
    isempty 若是空矩阵则为真
    isequal 若对应元素相等则为1
    islogical 尤其是逻辑数则为真
    isnumeric 若是数值则为真
    length 确定向量的长度
    logical 将数值转化为逻辑值
    ndims 数组A 的维数
    size 确定矩阵的维数
    4.3 矩阵操作(Matrix manipulateion)
    blkdiag 块对角阵串接
    diag 创建对角阵,抽取对角向量
    end 数组的长度,即最大下标
    find 找出非零元素1 的下标
    fliplr 矩阵的左右翻转
    flipud 矩阵的上下翻转
    flipdim 交换对称位置上的元素
    ind2sub 据单下标换算出全下标
    reshape 矩阵变维
    rot90 矩阵逆时针90°旋转
    sub2idn 据全下标换算出单下标
    tril 抽取下三角阵
    triu 抽取上三角阵
    4.4 特殊变量和常数(Special variables and constants)
    ans 最新表达式的运算结果
    eps 浮点相对误差
    i,j 虚数单位
    inf 或Inf 无穷大
    isfinite 若是有限数则为真
    isinf 若是无穷大则为真
    isnan 若为非数则为真
    NaN 或nan 非数
    pi 3.1415926535897⋯.
    realmax 最大浮点数
    realmin 最小正浮点数
    why 一般问题的简明答案
    4.5 特殊矩阵(Specialized matrices)
    compan 伴随矩阵
    gallery 一些小测试矩阵
    hadamard Hadamard 矩阵
    hankel Hankel 矩阵
    hilb Hilbert 矩阵
    invhilb 逆Hilbert 矩阵
    magic 魔方阵
    pascal Pascal 矩阵
    rosser 典型对称特征值实验问题
    toeplitz Toeplitz 矩阵
    vander Vandermonde 矩阵
    wilkinson Wilkinson’s 对称特征值实验矩阵
    5 基本数学函数(Elementary math functions)
    5.1 三角函数(Trigonometric)
    acos 反余弦
    acosh 反双曲余弦
    acot 反余切
    acoth 反双曲余切
    acsc 反余割
    acsch 反双曲余割
    asec 反正割
    asech 反双曲正割
    asin 反正弦
    asinh 反双曲正弦
    atan 反正切
    atanh 反双曲正切
    atan2 四象限反正切
    cos 余弦
    cosh 双曲余弦
    cot 余切
    coth 双曲余切
    csc 余割
    csch 双曲余割
    sec 正割
    sech 双曲正割
    sin 正弦
    sinh 双曲正弦
    tan 正切
    tanh 双曲正切
    5.2 指数函数(Exponential)
    exp 指数
    log 自然对数
    log10 常用对数
    log2 以2 为底的对数
    nestpow2 最近邻的2 的幂
    pow2 2 的幂
    sqrt 平方根
    5.3 复数函数(Complex)
    abs 绝对值
    angle 相角
    complex 将实部和虚部构成复数
    conj 复数共轭
    cplxpair 复数阵成共轭对形式排列
    imag 复数虚部
    isreal 若是实数矩阵则为真
    real 复数实部
    unwrap 相位角360°线调整
    5.4 圆整和求余函数(Rounding and remainder)
    ceil 朝正无穷大方向取整
    fix 朝零方向取整
    floor 朝负无穷大方向取整
    mod 模数求余
    rem 求余数
    round 四舍五入取整
    sign 符号函数
    6 特殊函数(Specialized math functions)
    cart2pol 直角坐标变为柱(或极)坐标
    cart2sph 直角坐标变为球坐标
    cross 向量叉积
    dot 向量内积
    isprime 若是质数则为真
    pol2cart 柱(或极)坐标变为直角坐标
    sph2cart 球坐标变为直角坐标
    7 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra)
    7.1 矩阵分析(Matrix analysis)
    det 行列式的值
    norm 矩阵或向量范数
    normest 估计2 范数
    null 零空间
    orth 值空间
    rank 秩
    rref 转换为行阶梯形
    trace 迹
    subspace 子空间的角度
    7.2 线性方程(Linear equations)
    chol Cholesky 分解
    cholinc 不完全Cholesky 分解
    cond 矩阵条件数
    condest 估计1-范数条件数
    inv 矩阵的逆
    lu LU 分解
    luinc 不完全LU 分解
    lscov 已知协方差的最小二乘积
    nnls 非负二乘解
    pinv 伪逆
    qr QR 分解
    rcond LINPACK 逆条件数
    \、/ 解线性方程
    7.3 特性值与奇异值(Eigenvalues and singular values)
    condeig 矩阵各特征值的条件数
    eig 矩阵特征值和特征向量
    eigs 多个特征值
    gsvd 归一化奇异值分解
    hess Hessenberg 矩阵
    poly 特征多项式
    polyeig 多项式特征值问题
    qz 广义特征值
    schur Schur 分解
    svd 奇异值分解
    svds 多个奇异值
    7.4 矩阵函数(Matrix functions)
    expm 矩阵指数
    expm1 矩阵指数的Pade 逼近
    expm2 用泰勒级数求矩阵指数
    expm3 通过特征值和特征向量求矩阵指数
    funm 计算一般矩阵函数
    logm 矩阵对数
    sqrtm 矩阵平方根
    7.5 因式分解(Factorization utility)
    cdf2rdf 复数对角型转换到实块对角型
    balance 改善特征值精度的平衡刻度
    rsf2csf 实块对角型转换到复数对角型
    8 数据分析和傅里叶变换(Date analysis and Fourier transforms)
    8.1 基本运算(Basic operations)
    cumprod 元素累计积
    cumsum 元素累计和
    cumtrapz 累计积分
    hist 统计频数直方图
    histc 直方图统计
    max 最大值
    mean 平均值
    median 中值
    min 最小值
    prod 元素积
    sort 由小到大排序
    sortrows 由小到大按行排序
    std 标准差
    sum 元素和
    trapz 梯形数值积分
    var 求方差
    8.2 有限差分(Finite differentces)
    del2 五点离散Laplacian
    diff 差分和近似微分
    gradient 梯度
    8.3 相关(Correlation)
    corrcoef 相关系数
    cov 协方差矩阵
    subspace 子空间之间的角度
    8.4 滤波和卷积(Filtering and convoluteion)
    conv 卷积和多项式相乘
    conv2 二维卷积
    convn N 维卷积
    detrend 去除线性分量
    deconv 解卷和多项式相除
    filter 一维数字滤波器
    fliter2 二维数字滤波器
    8.5 傅里叶变换(Fourier transforms)
    fft 快速离散傅里叶变换
    fft2 二维离散傅里叶变换
    fftn N 维离散傅里叶变换
    fftshift 重排fft 和fft2 的输出
    ifft 离散傅里叶反变换
    ifft2 二维离散傅城叶反变换
    ifftn N 维离散傅里叶反变换
    ifftshift 反fftshift
    9 音频支持(Audio support)
    9.1 音频硬件驱动(Audio hardware drivers)
    sound 播放向量
    soundsc 自动标刻并播放
    waveplay 利用系统音频输出设配播放
    waverecor 利用系统音频输入设配录音
    9.2 音频文件输入输出(Audio file import and export)
    auread 读取音频文件(.au)
    auwrite 创建音频文件(.au)
    wavread 读取音频文件(.wav)
    wavwrite 创建音频文件(.wav)
    9.3 工具(Utilities)
    lin2mu 将线性信号转换为μ 一律编码的信号
    mu2lin 将μ 一律编码信号转换为线性信号
    10 插补多项式函数(Interpolation and polynomials)
    10.1 数据插补(Data Interpolation)
    griddata 分格点数据
    griddata3 三维分格点数据
    griddatan 多维分格点数据
    interpft 利用FFT 方法一维插补
    interp1 一维插补
    interp1q 快速一维插补
    interp2 二维插补
    interp3 三维插补
    intern N 维插补
    pchip hermite 插补
    10.2 样条插补(Spline Interpolation)
    ppval 计算分段多项式
    spline 三次样条插补
    10.3 多项式(Polynomials)
    conv 多项式相乘
    deconv 多项式相除
    poly 由根创建多项式
    polyder 多项式微分
    polyfit 多项式拟合
    polyint 积分多项式分析
    polyval 求多项式的值
    polyvalm 求矩阵多项式的值
    residue 求部分分式表达
    roots 求多项式的根
    11 数值泛函函数和ODE 解算器(Function functions and ODE solvers)
    11.1 优化和寻根(Optimization and root finding)
    fminbnd 非线性函数在某区间中极小值
    fminsearch 单纯形法求多元函数极值点指令
    fzero 单变量函数的零点
    11.2 优化选项处理(Optimization Option handling)
    optimget 从OPTIONS 构架中取得优化参数
    optimset 创建或修改OPTIONS 构架
    11.3 数值积分(Numerical intergration)
    dblquad 二重(闭型)数值积分指令
    quad 低阶法数值积分
    quadl 高阶法数值积分
    11.4 绘图(Plotting)
    ezcontour 画等位线
    ezcontourf 画填色等位线
    ezmesh 绘制网格图
    ezmeshc 绘制含等高线的网格图
    ezplot 绘制曲线
    ezplot3 绘制3 维曲线
    ezpolar 采用极坐标绘图
    ezsurf 画曲面图
    ezsurfc 画带等位线的曲面图
    fplot 画函数曲线图
    11.5 内联函数对象(Inline function object)
    argnames 给出函数的输入宗量
    char 创建字符传输组或者将其他类型变量转化为
    字符串数组
    formula 函数公式
    inline 创建内联函数
    11.6 差微分函数解算器(Differential equation solvers)
    ode113 变阶法解方程
    ode15s 变阶法解刚性方程
    ode23 低阶法解微分方程
    ode23s 低阶法解刚性微分方程
    ode23t 解适度刚性微分方程
    odet23tb 低阶法解刚性微分方程
    ode45 高阶法解微分方程
    12 二维图形函数(Two dimensional graphs)
    12.1 基本平面图形(Elementary X-Y graphs)
    loglog 双对数刻度曲线
    plot 直角坐标下线性刻度曲线
    plotyy 双纵坐标图
    polar 极坐标曲线图
    semilogx X 轴半对数刻度曲线
    semilogy Y 轴半对数刻度曲线
    12.2 轴控制(Axis control)
    axes 创建轴
    axis 轴的刻度和表现
    box 坐标形式在封闭式和开启词式之间切换
    grid 画坐标网格线
    hold 图形的保持
    subplot 创建子图
    zoom 二维图形的变焦放大
    12.3 图形注释(Graph annotation)
    gtext 用鼠标在图上标注文字
    legend 图例说明
    plotedit 图形编辑工具
    text 在图上标注文字
    texlabel 将字符串转换为Tex 格式
    title 图形标题
    xlabel X 轴名标注
    ylabel Y 轴名标注
    12.4 硬拷贝(Hardcopy and printing)
    orient 设置走纸方向
    print 打印图形或把图存入文件
    printopt 打印机设置
    13 三维图形函数(Three dimensional graphs)
    13.1 基本三维图形(Elementary 3-D plots)
    fill3 三维曲面多边形填色
    mesh 三维网线图
    plot3 三维直角坐标曲线图
    surf 三维表面图
    13.2 色彩控制(Color control)
    alpha 透明色控制
    brighten 控制色彩的明暗
    caxis (伪)颜色轴刻度
    colordef 用色风格
    colormap 设置色图
    graymon 设置缺省图形窗口为单色显示屏
    hidden 消隐
    shading 图形渲染模式
    whitebg 设置图形窗口为白底
    13.3 光照模式(Lighting)
    diffuse 漫反射表面系数
    light 灯光控制
    lighting 设置照明模式
    material 使用预定义反射模式
    specular 漫反射
    surfnorm 表面图的法线
    surfl 带光照的三维表面图
    13.4 色图(Color maps)
    autumn 红、黄浓淡色
    bone 蓝色调灰度图
    colorcube 三浓淡多彩交错色
    cool 青和品红浓淡色图
    copper 线性变化纯铜色调图
    flag 红-白-蓝黑交错色图
    gray 线性灰度
    hot 黑-红-黄-白交错色图
    hsv 饱和色彩图
    jet 变异HSV 色图
    lines 采用plot 绘线色
    pink 淡粉红色图
    prism 光谱色图
    spring 青、黄浓淡色
    summer 绿、黄浓淡色
    vga 16 色
    white 全白色
    winter 蓝、绿浓淡色
    13.5 轴的控制(Axis control)
    axes 创建轴
    axis 轴的刻度和表现
    box 坐标形式在封闭式和开启式之间切换
    daspect 轴的DataAspectRatio 属性
    grid 画坐标网格线
    hold 图形的保持
    pbaspect 画坐标框的PlotBoxAspectRatio 属性
    subplot 创建子图
    xlim X 轴范围
    ylim Y 轴范围
    zlim Z 轴范围
    zoom 二维图形的变焦放大
    13.6 视角控制(Viewpoint control)
    rotate3d 旋动三维图形
    view 设定3-D 图形观测点
    viewmtx 观测点转换矩阵
    13.7 图形注释(Graph annotation)
    colorbar 显示色条
    gtext 用鼠标在图上标注文字
    plotedit 图形编辑工具
    text 在图上标注文字
    title 图形标题
    xlabel X 轴名标注
    ylabel Y 轴名标注
    zlabel Z 轴名标注
    13.8 硬拷贝(Hardcopy and printing)
    orient 设置走纸方向
    print 打印图形或把图存入文件
    printopt 打印机设置
    verml 将图形保存为VRML2.0 文件
    14 特殊图形(Specialized graphs)
    14.1 特殊平面图形(Specialized 2-D graphs)
    area 面域图
    bar 直方图
    barh 水平直方图
    comet 彗星状轨迹图
    compass 从原点出发的复数向量图
    errorbar 误差棒棒图
    ezplot 画二维曲线
    ezpolar 画极坐标曲线
    feather 从X 轴出发的复数向量图
    fill 多边填色图
    fplot 函数曲线图
    hist 统计频数直方图
    pareto Pareto 图
    pie 饼形统计图
    plotmatrix 散点图阵列
    scatter 散点图
    stairs 阶梯形曲线图
    stem 火柴杆图
    14.2 等高线及二维半图形(Contour and 2-1/2D graphs)
    clabel 给等高线加标注
    contour 等高线图
    contourf 等高线图
    contour3 三维等高线
    ezcontour 画等位线
    ezcontourf 画填色等位线
    pcolor 用颜色反映数据的伪色图
    voronoi Voronoi 图
    14.3 特殊三维图形(Specialized 3-D graphs)
    bar3 三维直方图
    bar3h 三维水平直方图
    comet3 三维彗星动态轨迹线图
    ezgraph3 通用指令
    ezmesh 画网线图
    ezmeshc 画等位线的网线图
    ezplot3 画三维曲线
    ezsurf 画曲面图
    ezsurfc 画带等位线的曲面图
    meshc 带等高线的三维网线图
    meshz 带零基准面的三维网线图
    pie3 三维饼图
    ribbon 以三维形式绘制二维曲线
    scatter3 三维散点图
    stem3 三维离散杆图
    surfc 带等高线的三维表面图
    trimesh 三角剖分网线图
    trisurf 三角剖分曲面图
    waterfall 瀑布水线图
    14.4 内剖及向量视图(Volume and vector visualization)
    coneplot 锥体图
    contourslice 切片等位线图
    quiver 矢量场图
    quiver3 三维方向箭头图
    slice 切片图
    14.5 图像显示及文件处理(Image display and file I/O)
    brighten 控制色彩的明暗
    colorbar 色彩条状图
    colormap 设置色图
    contrast 提高图像对比度的灰色图
    gray 线性灰度
    image 显示图像
    imagesc 显示亮度图像
    imfinfo 获取图像文件的特征数据
    imread 从文件读取图像的数据阵(和伴随色图))
    imwrite 把强度图像或真彩图像写入文件
    14.6 影片和动画(Movies and animation)
    capture 当前图的屏捕捉
    frame2im 将影片动画转换为编址图像
    getframe 获得影片动画图像的帧
    im2frame 将编址图像转换为影片动画
    movie 播放影片动画
    moviein 影片动画内存初始化
    rotate 旋转指令
    14.7 颜色相关函数(Color related function)
    spinmap 颜色周期性变化操纵
    14.8 三维模型函数(Solid modeling)
    cylinder 圆柱面
    patch 创建块
    sphere 球面
    Surf2patch 将曲面数据转换为块数据
    15 句柄图形(Handle Graphics)
    15.1 图形窗的产生和控制(Figure window creation and control)
    clf 清除当前图
    close 关闭图形
    figure 打开或创建图形窗口
    gcf 获得当前图的柄
    openfig 打开图形
    refresh 刷新图形
    shg 显示图形窗
    15.2 轴的产生和控制(Axis creation and control)
    axes 在任意位置创建轴
    axis 轴的控制
    box 坐标形式在封闭式和开启式之间切换
    caxis 控制色轴的刻度
    cla 清除当前轴
    gca 获得当前轴的柄
    hold 图形的保持
    ishold 若图形处保持状态则为真
    subplot 创建子图
    15.3 句柄图形对象(Handle Graphics objects)
    axex 在任意位置创建轴
    figure 创建图形窗口
    image 创建图像
    light 创建光
    line 创建线
    patch 创建块
    rectangle 创建方
    surface 创建面
    text 创建图形中文本
    uicontextmenu 创建现场菜单对象
    uicontrol 用户使用界面控制
    uimenu 用户使用菜单控制
    15.4 句柄图形处理(Handle Graphics operations)
    copyobj 拷贝图形对象及其子对象
    delete 删除对象及文件
    drawnow 屏幕刷新
    findobj 用规定的特性找寻对象
    gcbf “正执行回调操作”的图形的柄
    gcbo “正执行回调操作”的控件图柄指令
    gco 获得当前对象的柄
    get 获得对象特性
    getappdat 获得应用程序定义数据
    isappdata 检验是否应用程序定义数据
    reset 重设对象特性
    rmappdata 删除应用程序定义数据
    set 建立对象特性
    setappdata 建立应用程序定义数据
    15.5 工具函数(Utilities)
    closereq 关闭图形窗请求函数
    ishandle 若是图柄代号侧为真
    newplot 下一个新图
    16 图形用户界面工具(Graphical user interface tools)
    align 对齐用户控件和轴
    cbedit 编辑回调函数
    ginput 从鼠标得到图形点坐标
    guide 设计GUI
    menu 创建菜单
    menuedit 菜单编辑
    propedit 属性编辑
    uicontrol 创建用户界面控制
    uimenu 创建用户界面菜单
    17 字符串(Character string)
    17.1 通用字符串函数(General)
    blanks 空格符号
    cellstr 通过字符串数组构建字符串的元胞数组
    char 创建字符传输组或者将其他类型变量转化为
    字符串数组
    deblank 删除最后的空格
    double 把字符串变成ASCII 码值
    eval 执行串形式的MATLAB 表达式
    17.2 字符串查询(String tests)
    iscellstr 若是字符串组成的元胞数组则为真
    ischar 若是字符串则为真
    isletter 串中是字母则为真
    isspace 串中是空格则为真
    isstr 若是字符串则为真
    17.3 字符串操作(String operations)
    base2dec X-进制串转换为十进制整数
    bin2dec 二进制串转换为十进制整数
    dec2base 十进制整数转换为X 进制串
    dec2bin 十进制整数转换为二进制串
    dec2hex 十进制整数转换为16 进制串
    findstr 在一个串中寻找一个子串
    hex2dec 16-进制串转换为十进制整数
    hex2num 16-进制串转换为浮点数
    int2str 将整数转换为字符串
    lower 把字符串变成小写
    mat2str 将数组转换为字符串
    num2str 把数值转换为字符串
    strcat 把多个串连接成长串
    strcmp 比较字符串
    strcmpi 比较字符串(忽略大小写)
    strings MATLAB 中的字符串
    strjust 字符串的对齐方式
    strmatch 逐行搜索串
    strnomp 比较字符串的前N 个字符
    strncmpi 比较字符串的前N 个字符(忽略大小写)
    strrep 用另一个串代替一个串中的子串
    strtok 删除串中的指定子串
    strvcat 创建字符串数组
    str2mat 将字符串转换为含有空格的数组
    str2num 将字符串转换为数值
    upper 把字符串变成大写
    18 文件输入/输出(File input/output)
    clc 清除指令窗口
    disp 显示矩阵和文字内容
    fprintf 把格式化数据写到文件或屏幕
    home 光标返回行首
    input 提示键盘输入
    load 从磁盘中调入数据变量
    pause 暂停
    sprintf 写格式数据到串
    sscanf 在格式控制下读串
    19 时间和日期(Time and dates)
    clock 时钟
    cputme MATLAB 战用CPU 时间
    date 日期
    etime 用CLOCK 计算的时间
    now 当前时钟和日期
    pause 暂停
    tic 秒表启动
    toc 秒表终止和显示
    20 数据类型(Data types and structures)
    20.1 数据类型(Data types)
    cell 创建元胞变量
    char 创建字符传输组或者将其他类型变量转化为
    字符串数组
    double 转化为16 位相对精度的浮点数值对象
    function handle 函数句柄
    inline 创建内联函数
    JavaArray 构建Java 数组
    JavaMethod 调用某个Java 方法
    JavaObject 调用Java 对象的构造函数
    single 转变为单精度数值
    sparse 创建稀疏矩阵
    struct 创建构架变量
    uint8(unit16、unit32) 转换为8(16、32)位无符号整型数
    int8(nit16、nit32) 转换为8(16、32)位符号整型数
    20.2 多维数组函数(Multi-dimensional array functions)
    cat 把若干数组串接成高维数组
    ndims 数组A 的维数
    ndgrid 为N-D 函数和插补创建数组
    ipermute 广义反转置
    permute 广义非共轭转置
    shiftdim 维数转换
    squeeze 使数组降维
    20.3 元胞数组函数(Cell array functions)
    cell 创建元胞变量
    celldisp 显示元胞数组内容
    cellfun 元胞数组函数
    cellplot 图示元胞数组的内容
    cell2struct 把元胞数组转换为构架数组
    deal 把输入分配给输出
    is cell 若是元胞则为真
    num2 cell 把数值数组转换为元胞数组
    struct2 cell 把构架数组转换为元胞数组
    20.4 构架函数(Structure functions)
    fieldnames 获取构架的域名
    getfield 获取域的内容
    isfield 若为给定构架的域名则为真
    isstruct 若是构架则为真
    rmfield 删除构架的域
    setfield 指定构架域的内容
    struct 创建构架变量
    20.5 函数句柄函数(Function handle functions)
    @ 创建函数句柄
    functions 列举函数句柄对应的函数
    func2str 将函数句柄数组转换为字符串
    str2func 将字符串转换为函数句柄
    20.6 面向对象编程(Object oriented programming functions)
    dlass 查明变量的类型
    isa 若是指定的数据类型则为真
    inferiorto 级别较低
    isjava 若是java 对象则为真
    isobject 若是对象则为真
    methods 显示类的方法名
    substruct 创建构架总量
    superiorto 级别较高
    21 示例(E xamples and demonstrations)
    demo 演示程序
    flow 无限大水体中水下射流速度数据
    intro 幻灯演示指令
    peaks 产生peaks 图形数据
    22 符号工具包(Symbolic Math Toolbox)
    22.1 微积分(Calculus)
    diff 求导数
    limit 求极限
    int 计算积分
    jacobian Jacobian 矩阵
    symsum 符号序列的求和
    trylor Trylor 级数
    22.2 线性代数(Linear Algebra)
    det 行列式的值
    diag 创建对角阵,抽取对角向量
    eig 矩阵特征值和特征向量
    expm 矩阵指数
    inv 矩阵的逆
    jordan Jordan 分解
    null 零空间
    poly 特征多项式
    rank 秩
    rref 转换为行阶梯形
    svd 奇异值分解
    tril 抽取下三角阵
    triu 抽取上三角阵
    22.3 化简(Simplification)
    collect 合并同类项
    expand 对指定项展开
    factor 进行因式或因子分解
    horner 转换成嵌套形式
    numden 提取公因式
    simple 运用各种指令化简符号表达式
    simplify 恒等式简化
    subexpr 运用符号变量置换子表达式
    subs 通用置换指令
    22.4 方程求解(Solution of Equation)
    compose 求复函数
    dsolve 求解符号常微分方程
    finverse 求反函数
    fminunc 拟牛顿法求多元函数极值点
    fsolve 解非线性方程组
    lsqnonlin 解非线性最小二乘问题
    solve 求解方程组
    22.5 变量精度(Variable Precision Arithmetic)
    digits 设置今后数值计算以n 位相对精度进行
    vpa 给出数值型符号结果
    22.6 积分变换(Integral Transforms)
    fourier Fourier 变换
    ifourier Fourier 反变换
    ilaplace Ilaplace 反变换
    iztrans Z 反变换
    laplace Ilaplace 变换
    ztrans Z 变换
    22.7 转换(Conversions)
    char 把符号对象转化为字符串数组
    double 把符号常数转化为16 位相对精度的浮点数值
    对象
    poly2sym 将多项式转换为符号多项式
    sym2poly 将符号多项式转换为系数向量
    22.8 基本操作(Basic Operation)
    ccode 符号表达式的C 码表达式
    findsym 确认表达式中符号“变量”
    fortran 符号表达式的fortran 表达式
    latex 符号表达式的LaTex 表示
    pretty 习惯方式显示
    sym 定义基本符号对象
    syms 定义基本符号对象
    22.9 串处理函数(String handling utilities)
    isvarname 检查是否为有效的变量名
    vectorize 将字符串表达式或内联函数对象向量化
    22.10 图形应用(Pedagogical and Graphical Applications)
    ezcontour 画等位线
    ezcontourf 画填色等位线
    ezmesh 画网线图
    ezmeshc 带等位线的网线图
    ezplot 绘制符号表达式的图形
    ezplot2 画三维曲线
    ezpolar 画极坐标曲线
    ezsurf 画曲面图
    ezsurfc 画带等位的曲面图
    funtool 函数计数器
    rsums Riemann 求和
    taylortool Taylor 级数计数器
    22.11 Maple 接口(Access to Maple)
    maple 进入MAPLE 工作空间计算
    mfun 对MAPLE 中若干经典特殊函数实施数值计算
    mfunlist 能被mfun 计算的MAPLE 经典特殊函数列表
    mhelp 查阅MAPLE 中的库函数及其调用方法
    procread 把按MAPLE 格式写的源程序读入MAPLE 工作空

    23 其它
    bode 波特图
    butter Butter Worth 低通道滤波器
    gplot 拓扑图
    hosted MAPLAB 服务中心识别号
    impulse 冲激响应
    isparse 若是稀疏矩阵则为真
    lsim 任意输入下的响应
    ltiview 响应分析的图形用户界面
    matlabrc MAPLAB 的主启动文件
    mbuild 独立可执行文件编译器预配置及创建
    mcc 编译宏指令
    mex 把C 码文件编译成MEX 文件
    mineral 消去传递函数分子、分母公因子
    nyquist Nyquist 图
    rlocus 跟轨迹
    setstr 把ASCII 码翻译成串
    sim 运行SIMULINK 模型
    ss 利用状态方程四对组生成LTI 对象
    simulink 打开SIMULINK 集成窗口
    ssdata 从LTI 对象获取状态方程四对组
    startup 启动MATLAB 时的自动执行M 文件
    step 单位阶跃响应
    tf 利用传递函数二对组生成LTI 对象
    tfdata 从LTI 对象获取传递函数二对组
    zpk 利用零极点增益三对组生成LTI 对象
    zpkdata 从LTI 对象获取零极点增益三对组
    loodfor 关键词检索

    notebood 创建或打开M-book 文件


    from: http://www.ilovematlab.cn/thread-6151-1-1.html

    展开全文
  • 常用的激活函数及其tf.keras实现

    千次阅读 2019-09-26 22:24:55
    如果神经网络中没有激活函数,无论网络结构再如何复杂,学习的模型都只能得到线性函数,只能解决线性可分问题。激活函数的引入,使得神经网络能够拟合任何一个非线性函数,可用于解决线性不可分问题。不同的激活函数...
  • 1 损失函数 定义:将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。 应用:作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。 分类:回归问题、...
  • jQuery 常用函数

    千次阅读 2014-07-23 22:44:44
    1.文档加载完成执行函数  $(document).ready(function(){  alert("开始了");  });   2.添加/删除CSS类  $("#some-id").addClass("NewClassName");  $("#some-id").removeClass("ClassNameToBeRemoved...
  • 常用激活函数总结

    2021-03-10 19:57:29
    sigmoid经常用于隐层神经元输出,函数与导数的图像如下 观察函数图像,我们很容易发现其优点与缺点。 优点: 1.输出值再(0,1)之间,输出的范围在稳定的范围内,可以用作输出层。实际上sigmoid经常用作输出层
  • 【Matlab】常用函数

    2019-09-22 11:23:13
    Matlab的一些函数包括各种函数、命令含义、还有simulink模块的,希望有帮助A aabs 绝对值, 模acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割all 所有元素均非零则为真alpha ...
  • jquery 常用函数

    2014-03-17 16:40:36
    1.文档加载完成执行函数  $(document).ready(function(){  alert("开始了");  });   2.添加/删除CSS类  $("#some-id").addClass("NewClassName");  $("#some-id").removeClass(...
  • 曲线:... SQL 指数函数、幂函数 来自 <https://www.cnblogs.com/hope100/p/4381746.html> 指数函数:y=a^x.指数x是自变量 幂函数:y=x^a.幂是自变量 python中,计算指数函数:2**3 计算...
  • 常用激活函数

    2020-08-06 17:51:51
    常见激活函数总结Sigmoid函数tanh...Sigmoid 是常用的非线性的激活函数,它的数学形式如下: f(z)=11+e−z f(z)=\frac{1}{1+e^{-z}} f(z)=1+e−z1​ Sigmoid的几何图像如下: 导数图像: tanh函数 tanh读作Hyperbolic
  • -----------------------------------------------------------------------------我先对控制系统的数学模型进行简单的阐述,控制系统的数学模型是描述系统输入、输出变量以及内部各变量之间关系的数学表达式。...
  • excel常用函数以及用法

    千次阅读 2018-10-23 17:25:39
    公式是单个或多个函数的结合运用。 AND “与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE)”时返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。 条件判断 AVERAGE 求出所有参数的算术平均值。 ...
  • 学习神经网络的时候我们总是听到激活函数这个词,而且很多资料都会提到常用的激活函数,比如Sigmoid函数、tanh函数、Relu函数。那么我们就来详细了解下激活函数方方面面的知识。本文的内容包括几个部分: 什么是...
  • 常见的激活函数及其优缺点分析

    千次阅读 2020-07-13 20:39:55
    常见的激活函数及其优缺点分析 在上一章我们总体介绍了一下卷积神经网络的框架,...其函数表达式图像如下所示 sigmoi函数是比较原始的激活函数,现在已经不太常用了,主要因为它有以下3个问题: sigmoid函数饱和
  • 神经网络常用激活函数 激活函数:激活函数在神经元中很重要,通常为了增强网络的表示能力和学习能力,激活函数需要具备的性质如下: \qquad(1)连续可导(但也允许少数点上不可导)的非线性函数,其中,可导的激活...
  • 1.7 常用函数 锋利的SQL(第2版)为满足通常的程序设计需要,Transact-SQL语言提供了非常丰富的函数,包括聚合函数、配置函数、游标函数、日期和时间函数、数学函数等。本节将介绍一些常用的函...
  • C语言程序设计(常用函数说明)

    千次阅读 2012-07-08 17:11:05
    C语言程序设计(常用函数说明) C 语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的 DEC PDP-11计算机上使用。它由早期的编程语言 BCPL(Basic Combind Programming Language)发展...
  • 学习神经网络的时候我们总是听到激活函数这个词,而且很多资料都会提到常用的激活函数,比如Sigmoid函数、tanh函数、Relu函数。那么我们就来详细了解下激活函数方方面面的知识。本文的内容包括几个部分: 什么是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,316
精华内容 4,126
关键字:

常用函数图像及其表达式