MATLAB基础篇(上)
目录
一、MATLAB简介
A. MATLAB发展简史
1、 MATLAB的开发单位:
2、几个不同的发展时期
B. MATLAB的特点
二、 MATLAB基本语法
1、数组的定义
规则1:
规则2:
规则3:
规则4:
2、数组元素的存取操作
3、算术运算
4 、数组变形
5、举例
6、常用函数
一、MATLAB简介
- MATLAB(Matrix Laboratory, 即矩阵实验室)是MathWork公司推出的一套高效率的数值计算和可视化软件.
- MATLAB是当今科学界最具影响力、也是最具活力的软件, 它起源于矩阵运算, 并已经发展成一种高度集成的计算机语言.
- 它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能.
A. MATLAB发展简史
1、 MATLAB的开发单位:
美国Mathworks公司,Cleve Moler博士
2、几个不同的发展时期
- 70年代末,Cleve Moler为讲授矩阵理论和数据分析编写了Linpack与Eispack软件包。
- 1984年,成立公司Mathworks,推出第二代MATLAB。内核用C编写。
- 1990年,推出系统仿真工具Simulink。
- 1993年,Matlab 4.0——Windows版。
- 1994年,Matlab 4.2——开始广受重视和应用。
- 1999年,Matlab 5.3——32位运算。
- 2000年11月,Matlab 6.0。
- 2001年5月,Matlab 6.1。
- 2002年8月,matlab 6.5—— 加入JIT加速器。
B. MATLAB的特点
- 一个变量可以直接当作一个矩阵。
- 一个元素可以直接当作一个复数。
- 用解释方式对程序加以执行。
- 数据可以通过MATLAB绘图功能实现可视化,最复杂的可视效果可以是三维坐标中的立体曲面图。
- 不仅能进行数值运算,还能进行符号运算及系统仿真。
- 有多达30多个工具箱。
- 与其他语言程序或应用程序有方便的接口。例如:C、Fortran、Word等。
- 大量繁杂的数学运算和分析可调用MATLAB的函数直接求解。
- “教育部全国计算机专业课程指导委员会”已将MATLAB作为推荐课程。
- MATLAB建立在C/C++语言基础之上, 抽象程度更高, 也更加接近人类的自然语言, 因而在编写程序时可以更多关注问题的整体处理上, 而不是数据的细节处理.
- MATLAB内置了大量的函数, 用户可以直接使用而不需要再自己编写. 由于MATLAB设计的开放性, 许多领域的专家都为MATLAB编写了各种程序工具箱. 这些工具箱提供了用户在特别应用领域所需的许多函数, 这使得用户不必花大量的时间编写程序就可以直接调用这些函数, 达到事半功倍的效果.
- MATLAB使用非常简洁的语句来表达丰富的含义, 简单易懂, 与C/C++等高级程序设计语言相比代码量少很多, 因而编程速度快, 非常适合做数学运算.
二、 MATLAB基本语法
- MATLAB的基本运算对象是数组(矩阵), 即使是1个数也当作一个1×1的矩阵来看待;
- MATLAB语法与其它高级程序设计语言相似, 符合一般的书写习惯;
- MATLAB语句可以以分号来结束, 也可以不用. 若以分号结束,则在命令窗口中不显示计算结果, 否则显示结果;
- 变量无需预先定义, 可在需要时直接使用;
- MATLAB的代码区分大小写;
- 以%作为注释界定符.
1、数组的定义
a=5 %或 a=[5]A=[2 0 4 1]B=[4 1 6; 5 9 4; 3 1 2] %这是个3*3矩阵
规则1:
以方括号为界定符, 元素之间用空格或逗号分隔, 两行之间用分号分隔; 各行元素个数必须相同;
A=1:10
B=1:3:10
C=10:-1:1
X=linspace(-pi,pi,50)对应的:
A=[1 2 3 4 5 6 7 8 9 10]
B=[1 4 7 10]
C=[10 9 8 7 6 5 4 3 2 1]
X=[-3.1416 -3.0134 -2.8851 ... 2.8851 3.0134 3.1416]
规则2:
- 产生等差数列使用a:s:b, 从a开始, 步长为s, 最后一个数不超过b;
- linspace(a,b,n)产生n个数, 将区间[a,b]分成n-1等份.
A=zeros(3,3) %全零
B=ones(3,3) %全一
C=eye(3,3) %单位矩阵
规则3:
特殊矩阵由相应的命令生成, 行数和列数在参数中指定.
A=rand(3,3) %0~1均匀分布随机数矩阵
B=1+9*rand(3,3) %1~10均匀分布随机数矩阵
C=randn(3,3) %标准正态分布随机数矩阵
规则4:
- a~b均匀分布随机数矩阵使用a+(b-a)*rand(m,n);
- a为期望b为方差的正态分布随机数矩阵使用a+b*randn(m,n).
2、数组元素的存取操作
A(1) %这个是取向量中的第一个元素
B(1,2) %第一行第二列元素
B(1,:) %这是第一行所有矩阵
B(:,1)
B(2:3,1:2)
规则:
- 取向量的元素使用A(n);
- 取矩阵的元素使用A(m,n);
- 取子矩阵使用A(m1:m2,n1:n2);
- 表示“所有” 使用“:”
- 使用size(A)来获取 数组 A的行数和列数
>> A=[1 3 5 7 9]
A =1 3 5 7 9
>> A(2)
ans =3
>> A(6)=11
A =1 3 5 7 9 11
>> A(1:end)
ans =1 3 5 7 9 11
>> A(end:-1:1)
ans =11 9 7 5 3 1
>> length(A)
ans =6
>> A=eye(3,3)
A =1 0 00 1 00 0 1
>> A(1,2)=2
A =1 2 00 1 00 0 1
>> A(2,:)=[1 2 3]
A =1 2 01 2 30 0 1
>> A(:,3)=A(:,2)
A =1 2 21 2 20 0 0
>> size(A)
ans =3 3
3、算术运算
A+B
A-B
%矩阵运算,如果参与运算的变量中有一个是标量, 则MATLAB将标量扩展成维数相同的矩阵, 与另一矩阵做运算A*B
A/B
A\B
A^2
%数组运算
A.*B %A与B元素对应相乘
A./B %A与B元素对应相除
A.^2 %A的元素和平方
4 、数组变形
1.C=[A B]
2.C=[A;B]
4.C=A’
4.C=repmat(A,m,n)
5.C=A(:) %将A的所有元素排成一列
6.A(1,:)=[] %删除A的第1行
>> A=eye(2,2) %产生2阶单位矩阵
A =1 00 1
>> B=rand(2,2) %产生2阶随机数矩阵
B =0.9649 0.97060.1576 0.9572
>> C=[A B] %矩阵横向合并
C =1.0000 0 0.9649 0.97060 1.0000 0.1576 0.9572
>> C=[A;B] %矩阵纵向合并
C =1.0000 00 1.00000.9649 0.97060.1576 0.9572
>> C=A’ %矩阵转置
C =1 00 1
>> C=repmat(A,1,2) %矩阵重复
C =1 0 1 00 1 0 1
>> C=A(:) %排成一列
C =1001
>> A(1,:)=[] %删除一行
A =0 1
5、举例
解线性方程组
6x1+3x2+4x3=3
-2 x1+5 x2+7 x3=-4
8 x1-4 x2-3 x3=-7
A = [6 3 4; -2 5 7; 8 -4 -3]
B = [3;-4; -7]
X = A\B
X = A^(-1)*B
X = inv(A)*B
X = linsolve(A,B)
得到:
X =0.60007.0000-5.4000
6、常用函数
分类 |
函数名 |
意义 |
基本数学函数 |
abs(x) |
实数的绝对值或复数的模 |
sqrt(x) |
开平方 |
|
real(z) |
复数z的实部 |
|
imag(z) |
复数z的虚部 |
|
round(x) |
取整,四舍五入 |
|
fix(x) |
取整,无论正负,舍去小数至最近整数 |
|
floor(x) |
取整,舍去正小数至最近整数 |
|
ceil(x) |
取整,加入正小数至最近整数 |
|
exp(x) |
自然指数 |
|
pow2(x) |
2的指数 |
分类 |
函数名 |
意义 |
基本数学函数 |
rem(x,y) |
求x除以y的馀数 |
gcd(x,y) |
整数x和y的最大公因数 |
|
lcm(x,y) |
整数x和y的最小公倍数 |
|
log(x) |
以e为底的对数,即自然对数或 |
|
log2(x) |
以2为底的对数 |
|
log10(x) |
以10为底的对数 |
|
sign(x) |
符号函数. 当x<0时, sign(x)=-1; 当x=0时, sign(x)=0; 当x>0时, sign(x)=1. |
分类 |
函数名 |
意义 |
三角函数 |
sin(x) |
正弦函数 |
cos(x) |
余弦函数 |
|
tan(x) |
正切函数 |
|
asin(x) |
反正弦函数 |
|
acos(x) |
反余弦函数 |
|
atan(x) |
反正切函数 |
|
sinh(x) |
双曲正弦函数 |
|
cosh(x) |
双曲余弦函数 |
|
tanh(x) |
双曲正切函数 |
|
asinh(x) |
反双曲正弦函数 |
|
acosh(x) |
反双曲余弦函数 |
|
atanh(x) |
反双曲正切函数 |
分类 |
函数名 |
意义 |
杂项 |
min(x) |
向量x的元素的最小值 |
max(x) |
向量x的元素的最大值 |
|
mean(x) |
向量x的元素的平均值 |
|
diff(x) |
向量x的相邻元素的差 |
|
length(x) |
向量x的元素个数 |
|
size(x) |
数组元素个数 |
|
sort(x) |
对向量x的元素进行排序 |
|
norm(x) |
向量x的欧氏长度 |
|
sum(x) |
向量x的元素总和 |
|
prod(x) |
向量x的元素总乘积 |
|
cumsum(x) |
向量x的累计元素总和 |
分类 |
函数名 |
意义 |
矩阵计算 |
det(A) |
矩阵行列式 |
rank(A) |
矩阵的秩 |
|
inv(A) |
矩阵的逆 |
|
norm(A) |
矩阵范数 |
|
trace(A) |
矩阵的迹 |
|
eig(A) |
矩阵特征值和特征向量 |
|
rref(A) |
化为行阶梯形 |
|
cond(A) |
矩阵条件数 |
|
lu(A) |
LU分解 |
|
chol(A) |
Cholesky分解 |
MATLAB基础篇(上)相关推荐
- MATLAB基础篇——微积分应用
MATLAB基础篇--微积分应用 函数极限 导数 定积分与不定积分 二重积分与三重积分 曲线积分 曲面积分 级数 微分方程和微分方程组的解析解 函数极限 limit函数: limit(f,x,a,'l ...
- 《CSS蝉意花园读书精记》(基础篇---------上.资料篇1)
这一篇文章主要是翻译书中提到的国际化的一篇文章,并让大家了解软件开发中字符编码的众多问题,被翻译的文章写得比较早,可能从技术的角度来看不是很有意义的,作者在文中是概括主流的字符编码,并不能让大家深入的 ...
- MATLAB基础篇——数值分析篇
MATLAB基础篇--数值分析篇 1.solve求解方程/方程组(不涉及微积分运算) 格式: syms 符号变量(要求解的变量) solve(方程左边==方程右边,符号变量) 例子: (1)求解方程x ...
- SpringBoot图文教程「概念+案例 思维导图」「基础篇上」
有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 每个知识点配套自测面试题,学完技术自我测试 本文初学向,所以希望文中所有的代码案例都能敲一遍 大哥大姐 ...
- 如何克服解决Git冲突的恐惧症?(Git基础篇--上)
初始化配置 我们安装了git之后,都要先配置以下git工作环境.git提供了git config的工具,专门用来配置或读取相应的工作环境变量. 配置: git config --global user ...
- NR基础篇上——均值滤波、高斯滤波、双边滤波、NLM
人类的世界就是一个信号传输的世界,所以噪声无处不在,图像作为一种信号传输的方式当然也无法幸免.为了尽量减少噪声对图像质量的影响,还原物体的本来状态就提出了一系列降噪的方法,本文就简单介绍几种常见的降噪 ...
- 一文搞懂AWS Region, VPC, VPC endpoint,AZ, Subnet 基础篇上
B站实操视频更新 跟着拉面学习AWS--Region,VPC,Subnet,SecurityGroup 简介 长文多图预警,看结论可以直接拖到"总结"部分 本文及下一篇文章介绍以下 ...
- 学习MongoDB 十一: MongoDB聚合(Aggregation Pipeline基础篇上)(三)
一.Aggregate简介 db.collection.aggregate()是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组.过滤等功能,然 ...
- matlab table中的文字转string_Table数据结构及应用--MATLAB 基础篇
正月里都是年,先给大家云拜年,祝大家在新的一年里身体健康,事业有成,家庭幸福 1.Table来源 在工程上面,数据多为表格形式,其特点列与列之间存在数据类型不同,而每一列的数据类型相同.并且每一列或者 ...
- 【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)
博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教 创作不易,如果本文帮到了您: 请帮忙点个赞
最新文章
- [译]JavaScript中,{}+{}等于多少?
- linux kernel 内存管理 感想总结(未完待续)
- 十二、经典问题解析一
- c 一般处理程序 ajax,Ajax调用一般处理程序数据
- 【简便代码+解析】1056 组合数的和 (15分)_14行代码AC
- phpStorm安装xDebug
- 抖音数据统计_26万条抖音数据背后的推荐逻辑以及严重失调的男女比例
- c++ list sort方法
- 在Java中使用Rserve调用R
- python 通过ftplib 实现上传下载
- 用yum下载安装gcc
- python实现bt下载器_使用Python实现BT种子和磁力链接的相互转换
- html 单击事件 隐藏/显示div
- jeapedu 76 列表刪除一個元素項
- 中国物流网很难进入运输颓势
- 三星s8html查看器,拆解三星S8手机
- Ugly Windows UVA - 1419
- UVA The Sultan's Successors
- 企业数据可视化实现2020用户留存分析
- 如何简单的模拟发送http post请求