matlab新手入门篇

来源:互联网 发布:绝对领域 知乎 编辑:程序博客网 时间:2024/03/29 10:09

Matlab矩阵操作基础

本文参考了matlab网上视频教程和部分百度搜索和百度百科资料

视频地址:http://cn.mathworks.com/videos/matlab-for-new-user-99205.html?form_seq=conf1050&elqsid=1425263613144&potential_use=Student&country_code=CN

一、数组的创建

(1)      a=1

表示a=1,此矩阵的size为1*1

(2)      a=1:1:10

表示a从1到10,间距为1,此矩阵的size为1*10

(3)      a=linspace(1,10,11)

表示a从1到10,共有11个数,因此间距为1

 

对linspace的补充与介绍

linspace函数

此函数是常用的用来生成等间距数组的方法。logspace,colon.也可以用来生成一些不同条件的数组,但是linspace 最常用。

linspace(a1,a2)

此函数用来生成a1到a2之间的等间距的数组,我们在MATLAB主窗口中输入如下命令:A=linspace(1,100)回车:然后会看到如下结果,我们可以看到生成的结果如下:

结果生成的是1到100之间的整数,一共100个数字,我们可以看到默认情况下linspace(a1,a2) 是生成包括a1 a2在内的等差数组。

linspace(a1,a2,N)

此函数是用来生成a1与a2之间等距的数组,那么我们先举两个例子来讨论生成的等差数列间距。

我们下面生成0-9之间间距为1的等差序列,那么我们尝试在MATLAB主窗口中输入如下:

 B=linspace(0,9,9)

我们可以看到结果如下:

B =

        0    1.1250    2.2500   3.3750    4.5000    5.6250   6.7500    7.8750    9.0000

我们可以看到结果并不是我们想要的,我们可以发现上面生成的数列间距是1.125,而1.125=(9-0)/(9-1)。下面我们尝试一下另外一个例子。

关于如何确定N

接着上面的例子,我们尝试例子B=linspace(0,9,10),在MATLAB主窗口中输入C=linspace(0,9,10),回车,我们可以看到如下结果:

C =

    0     1     2    3     4     5    6     7     8    9

可以看到生成的数组间距为1,=(9-0)/(10-1),

所以我们确定N的方法是依照间距d=(a2-a1)/(N-1)

 

(4)  matlab随机数

matlab中生成随机数主要有三个函数:rand,randn,randi

1,rand 生成均匀分布的伪随机数。分布在(0~1)之间

   主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数

            rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是'single'

          rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数

2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)

   主要语法:和上面一样

3, randi 生成均匀分布的伪随机整数

   主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数

            randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵

            r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵

 

此处输入a2=rand(1,100)

用hist函数看其直方图hist(a2)


可以看出,基本上分布是比较平均的,符合均匀分布

如果用randn标准正态分布的话,则hist的结果如下


二、数组的连接

(1)通过X=[A:B]的方式进行连接

三、数学运算

比如y=sin(x)

则得到x矩阵内所有数sin之后的值

下表即为MATLAB常用的基本数学函数及三角函数: 

 

小整理:MATLAB常用的基本数学函数

abs(x)

纯量的绝对值或向量的长度

angle(z)

复 数z的相角(Phase angle)

sqrt(x)

开平方

real(z)

复数z的实部

imag(z)

复数z的虚 部

conj(z)

复数z的共轭复数

round(x)

四舍五入至最近整数

fix(x)

无论正负,舍去小数至最近整数

floor(x)

地板函数,即舍去正小数至最近整数

ceil(x)

天花板函数,即加入正小数至最近整数

rat(x)

将实数x化为分数表示

rats(x)

将实数x化为多项分数展开

sign(x)

符号函数 (Signum function)

当x<0时,sign(x)=-1; 

当x=0时,sign(x)=0; 

当x>0时,sign(x)=1。

 

> 小整理:MATLAB常用的三角函数

sin(x)

正弦函数

cos(x)

余弦函数

tan(x)

正切函数

asin(x)

反正弦函数

acos(x)

反余弦函数

atan(x)

反正切函数

atan2(x,y)

四象限的反正切函数

sinh(x)

超越正弦函数

cosh(x)

超越馀弦函数

tanh(x)

超越正切函数

asinh(x)

反超越正弦函数

acosh(x)

反超越馀弦函数

atanh(x)

反超越正切函数

 

四、Matlab工作流程

可以分为三步:

(1)      读取数据

可以从文件(txt,excel等)、软件(数据库)、硬件(照相机)中读取数据

(2)      探索&发现

可以进行数据的分析和建模

(3)      分享

可以是报告和代码

五、matlab拟合实例

采用plotfit进行拟合,polyfit函数的数学基础是最小二乘法曲线拟合原理;plotfit(X,Y,N),其中N表示次项,输出结果为系数,以一次拟合为例

此处注意,在matlab中,.*和*的区别,*表示的是矩阵和矩阵相乘,.*则表示矩阵内元素的相乘。

结果如下


因为数字为我随机输入,因此用一次拟合效果一般。

六、帮助

(1) 对任何matlab中的命令想要更加深入的了解,都可以使用doc命令。例如doc plot 就可以了解plot的内容和案例。

(2) 当记不起命令全称时可以用tab键进行模糊查询

(3) clc清空command window

(4) clear all清空workspace

(5) close all关闭所有打开的图像

 

 

0 0