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关闭所有打开的图像
- matlab新手入门篇
- matlab GUI 新手入门
- matlab GUI 新手入门
- matlab GUI新手入门——基本概念
- C++新手入门--指针篇
- Protege新手入门(基础篇)
- 嵌入式新手入门篇
- linux新手入门--实战篇
- 阿里云新手入门篇
- 敏捷开发新手入门篇
- Android之新手入门篇
- java新手入门 01篇
- 新手入门
- 新手入门
- 新手入门
- 新手入门
- 新手入门
- 新手入门
- 【学习心得】linux下多客户端批量操作脚本(含expect交互)
- 数据结构---图(邻接表)
- 显示缓存内容
- enum和int的相互转换
- 数据结构---图(求关节点)
- matlab新手入门篇
- SRTM DEM 下载网址
- 另类case when
- 剪格子
- Math类常用的常量和方法
- curl命令的安装
- 有用的网址
- docker详细的基础用法
- 在c#中配置xunit单元测试