matlab
2020-12-09 16:55:45 2 举报
AI智能生成
matlab的数学建模学习使用(持续更新)
作者其他创作
大纲/内容
6.数据统计分析
基础计算
排序
sort(X)
[Y,I] = sort(A,dim,mode)
相关系数
corrcoef()
corrcoef(A)
corrcoef(A,B)
标准差
std()
std(A,flag,dim)
总体标准差
样本标准差
类乘
cumprod()
累加
cumsum()
求积
prod()
求和
sum()
中值
median()
最大值和最小值
max()
min()
[y,k] = max(X)
max(A,[],dim)
平均值
mean()
多项式
创建多项式
[p1,p2,p3.......]
乘法
conv(P1,P2)
[Q,r]=deconv(P1,P2)
求导
polyder()
求值
polyval(p,x)
polyvalm(p,x)
求根
roots(p)
数据插值
Y1 = interp1(X,Y,X1,method)
method
linear
线性
nearest
pchip
spline
interp2()
interp2(X,Y,Z,X1,Y1,method)
曲线拟合
最小二乘法
函数逼近
数值微分
数值微分
dx = diff(x)
数值积分
[l,n]=quad(filename, a, b, tol,trace)
梯形积分
trapz()
二重积分
l= integral2()
三重积分
integral3(filename,a,b,c,d,e,f)
线性方程组
开普勒定律
非线性方程
x = fzero(filename , x0)
fsolve(filename,x0,option)
极值
最小值
[xmin,fmin] = fminbnd()
[xmin,fmin] = fminsearch()
[xmin,fmin] = fminunc()
有约束下的最优化
[xmin,fmin] = fmincon()
常微分方程
单步法
多步法
[t,y] = solver(filename , tspan , y0 , option)
求解函数的统一命名方式
odennxx
nn:数字
xx:字母
模型
lotka - Volterra
应用重要
绘图
matlab绘图
二维曲线
plot(x,y)
弧形变量用cx = complex(x,y)
绘制多条曲线
x= linspace(0,2*pi,100)
y=[sin(x);sin(x*2)]
plot(x,y)
绘制多个函数曲线
plot(x1,y1,x2,y2......)
plot(x,y,选项)
线型
-
实线
:
虚线
-.
点画线
--
双画线
颜色
r
红色
g
绿色
b
蓝色
w
白色
k
黑色
数据点标记
*
星号
o
圆圈
s
方块
p
五角星
^
朝上三角符号
fplot()
fplot(f,lims,选项)
f
函数
lims
x轴取值范围
默认值
[-5,5]
绘制图形的辅助操作
图形标注
title(图形标题)
title({'MATLAB'},'666')
跨行输出
格式控制符
\omega
^{axt}
X_{1} {}\geq} X_{2}
{\beta}
\bf
加粗
\it
斜体
\rm
正体
xlabel(x轴说明)
ylabel(y轴说明)
text(x,y,图形说明)
text(x,y,说明)
gtext(说明)
legend(图例1,图例2......)
坐标控制
axis([xmin,xmax,ymin,ymax,zmin,zmax])
axis equal
等长刻度
axis square
正方形坐标系
axis auto
使用默认设置
axis off
axis on
显示坐标轴
坐标系加网格
grid on
grid off
grid
坐标系加边框
box on
box off
box
图形保持
hold on
hold off
hold
图形窗口的分割
子图
subplot(m,n,p)
其它形式的二维曲线
对数坐标图
loglog(x1,y1,选项1,......)
semilogy(x1,y1,选项1,......)
semilogx(x1,y1,选项1,......)
选项与plot一致
极坐标图型
polar(theta,rho,选项)
theta极角
rho极径
条形图
bar
bar(y,style)
y是数据
style
排列模式
bar(x,y,style)
barh
直方图
hist()
hist(y)
hist(y,x)
x为划分方式
默认10
rose()
rose(theta,x)
默认20
扇形图
pie函数
pie(x,explode)
面积图
area函数
子主题
散点图
scatter()
scatter(x,y,选项,'filled')
阶梯图
stairs()
杆图
stem()
罗盘图
compass()
羽毛图
feather()
箭头图
quiver()
quiver(x,y,u,v)
三维图形
plot3()
plot3(x,y,z)
xyz同型矩阵
plot3(x1,y1,z1,x2,y2,z2.....)
fplot3()
fplot(funx,funy,funz,tlims)
三维曲面
平面网格数据的生成
矩阵运算生成
[X,Y] = meshgrid(x,y)
绘制三位曲面图
mesh(x,y,z,c)
补面无颜色
mesh(z,c)
meshc()
meshz()
surf(x,y,z,c)
补面有颜色
surf(z,c)
surfc()
surfl()
标准三维曲面
[x,y,z]=sphere(n)
[x,y,z] = cylinder(R,n)
peaks
peaks(n)
peaks(V)
peaks(x,y)
peaks
fsurf(funx,funy,funz,uvlims)
fmesh(funx,funy,funz,uvlims)
图形修饰处理
视点处理
view(az,el)
view(x,y,z)
view(2)
view(3)
颜色
[R,G,B]
001
蓝色
100
红色
010
绿色
111
白色
000
黑色
色图矩阵
cmap = colormap(parula(5))
colormap cmapname
colormap(cmap)
表面着色
shading faceted
shading flat
shading interp
图形裁剪
NAN
y(条件) = NaN
交互式绘图工具
绘图选项卡
绘图工具
图形窗口菜单和工具栏
1.基础知识
系统环境
先建立文件夹,设为当前文件夹进行操作
搜索路径
搜索顺序1.变量2.内部函数3.程序文件
如果sin()为数组,则需要使用sin()函数的时候需要将变量在工作区中删除
path(path,'e:\work')
用设置路径直接设置
文件名不能相同
数值数据
整形
无符号
8位:0~(2^8)-1
x=int8(129) = 127
x=uint(129)=127
有符号
浮点型
single()
double()
class() 判断数据类型
复数型
实部和虚部
real()求实部
imag()求虚部
format 格式符
format long
默认格式:short
数学函数
调用方式
函数名(函数自变量的值)
A=[4,2;3,6]
B=exp(A)
角度为单位在函数名后加d
sind()
求绝对值
abs()
取整
fix()
舍去小数取整
ceil()
向上取整
floor()
向下取整
round()
四舍五入取整方式
应用:求个位或者其他位
k=isprime(x)
生成k向量
k1=find(k)
生成和k一样的k1向量
exp()=e^x的指数函数
rem(A,2)
取余函数
变量及操作
内存单元的抽象
字母开头
接数字或者下划线
区分大小写
标准函数名以及命令名必须使用小写字母
赋值:
变量=表达式
表达式
x=sqrt(7)-2*i
预定义变量
系统本身定义的变量
ans
i
j
pi
NaN
避免使用同名的预定义变量
变量的管理
变量的删除和修改
工作区
内存变量的管理
右击变量
选择操作
who
显示名称
whos
显示数据的大小 数据的类型 所占字节
.mat 文件的生成
save
创建内存变量文件
save mydata a x
load
装入内存变量文件
load mydata
矩阵的表示
直接输入法
A=[1,2,3;4,5,6;7,8,9]
同行用,隔开
不同行用;分开
拼接法
C=[A,B;B,A]
实部矩阵和虚部矩阵组合构成复数矩阵
A=[B+i*C]
冒号表达式
产生行向量
e1:e2:e3
e2为步长
t=0:1:5
等同于
t=0:5
linspace(a,b,n)
n省略时自动产生100个元素
结构矩阵
结构数据类型
结构矩阵元素.成员名 =表达式
a(1).x1 = 10 ; a(1).x2 = liu
单元矩阵
单元数据类型
单元矩阵各个元素不同类型的数据组成
用大括号括起来
元素的元素可以是不同的类型
矩阵元素的引用
引用方式
下标引用
A(3,2)=10
若行标列表大于原矩阵,则自动扩展
序号引用
在内存中的排列顺序
序号与下标一一对应
sub2ind(S,I,J)
函数的作用是将矩阵元素的行,列下标转换成存储的序号
J转换矩阵元素的列下标
I转换矩阵元素的行下表
行数和列数的组成的向量
size()函数获取
[I,J]=ind2sub(S,D)
S行数和列数组成的向量
D序号
I 行下标
J 列下标
冒号表达式
A(i,:) 第i行的所有元素
A(i:i+u,k:k+m)
end运算符
表示某一维的末尾元素下标
用空矩阵删除矩阵的元素
x= [];
A=(:,[2,4]) = []
删除A第二列和第4列的矩阵
reshape(A,m,n)
总元素保持不变的前提下,重新排列成mxn的二维矩阵
改变行数和列数,不改变存储顺序
matlab的基本运算
算数运算
+
矩阵的维数和大小相同
标量和矩阵运算
每个元素都运算
-
*
维数和大小相同
/
右除
如果A矩阵是非奇异方阵
B/A = B* inv(A)
\
左除
A\B = inv(A)*B
标量左除和右除相等
矩阵不一定相等
^
点运算
A.*B
每个元素相乘
关系运算
<
<=
>
>=
==
等于
~=
不等于
关系成立输出1,不成立输出0
同型矩阵相比较输出的关系矩阵由0或者1组成
逻辑运算
&
|
~
非
同型矩阵参与运算则得到同型矩阵但是得到的关系矩阵由0或1组成
标量与矩阵则逐个运算
字符串处理
字符型数据
'university'
字符串
一个字符串当作一个行向量
字符串中如果有单引号则用''表示'
可以用空格来调整
revch()倒序排列
length()
输出行向量的长度
字符串的操作
字符串的执行格式
s = '[t,sin(t),cos(t)]'
eval(s)
字符串与数值之间的转换
abs和double可以将字符转换成ASC||码
char可以将ASC||码转换成字符串矩阵
字符串比较
关系运算符
成立为1,否则为0
长度相等,比较结果,逐个输出
字符串比较函数
strcmp(s1,s2)
strncmp(s1,s2,n)
strcmpi(s1,s2)
忽略大小写
strncmpi(s1,s2)
返回只有0或者1
字符串查找函数
findstr(s1,s2)
短字符串在长字符串开始的位置
strrep(s1,s2,s3)
将字符串s1中的所有子字符串s2替换为字符串s3
矩阵的操作
特殊矩阵
帕斯卡矩阵
生成一个杨辉三角形
n阶帕斯卡矩阵
pascal(5)
伴随矩阵
p(x) = 0
compan(p)
希尔伯特矩阵
H(i,j)=1/(i+j-1)
范德蒙矩阵
vander(1:5)
魔方矩阵
magic(n)
只产生特定的魔方阵
每行每列对角线上之和相等
通用的特殊矩阵
zeros()
0
zeros(m)
m*m
zeros(m,n)
m*n
zeros(size(A))
同A
ones()
1
eye()
对角线为1
rand()
随机矩阵
randn()
均值为0方差为1的标准正态分布随机矩阵
矩阵变换
diag(A)
提取矩阵A的主对角线的元素
产生一个列向量
diag(A,k)
提取矩阵A第k条对角线的元素
主对角线为k=0
构造对角矩阵
diag(V)
diag(V,k)
三角阵
上三角阵
triu(A)
提取A主对角线及以上的元素
triu(A,k)
下三角阵
tril(A)
tril(A,k)
矩阵的转置
转置运算
.'
共轭转置
'
取每个数的复共轭
矩阵的旋转
rot90(A,k)
将矩阵A逆时针方向旋转90°的k倍
矩阵的翻转
fliplr(A)
左右翻转
列翻转
flipud(A)
上下翻转
行翻转
逆矩阵
AB = BA = I(单位矩阵)
用于求多元方程组的解
inv(A)
矩阵求值
方阵的行列式
det(A)
求方阵A所对应行列式的值
det(A^-1) = 1/det(A)
矩阵的秩
rank(A)
矩阵的迹
矩阵特征值之和
trace(A)
对角线元素之和
向量的范数
向量1范数
向量元素的绝对值之和
norm(V,1)
向量2范数
向量元素平方和的平方根
norm(V)或者norm(V,2)
向量∞范数
所有向量元素绝对值中的最大值
norm(V,inf)
矩阵的范数
1范数
矩阵列元素绝对值之和的最大值
格式同向量,下同
2范数
A’A矩阵的最大特征值的平方根
∞范数
所有矩阵行元素绝对值之和的最大值
矩阵的条件数
矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积
1范数
cond(A,1)
2范数
cond(A)
cond(A,2)
∞范数
cond(A,inf)
条件数越接近于1,矩阵的性能越好,反之,性能越差
特征值和特征向量
eig(A)
全部特征值
构成一个向量E
[X,D]=eig(A)
求A的全部特征值
构成对角阵D,矩阵X,X各列是相应的特征向量
eigshow()
表现向量x和Ax之间的关系
稀疏矩阵
0元素个数多于非0元素
存储方式
完全存储方式
转换方式
子主题
稀疏存储方式
存储非零元素的值,位置
行号和列号
直接建立稀疏存储矩阵
sparse()
spconvert(A)
带状稀疏矩阵
所有非0都在对角线上
[B,d]=spdiags(A)
A = spdoags(B,d,m,n)
speye(m,n)
返回一个m*n的稀疏存储单位矩阵
程序流程控制
顺序结构
建立文件
edit text
脚本文件
f1.m
执行文件
f1
函数文件
f2.m
f2(A,B)
数据的输入
A = input(提示信息,选项)
数据的输出
disp(输出项)
程序的暂停
pause(延迟秒数)
if语句
if 条件 语句组 end
if 条件 语句组1 else 语句组2 end
if 条件1 语句组1 elseif 条件2 语句组2 ......else 语句组n end
switch语句
switch 表达式 case 结果表1 语句组1.......case 结果表m 语句组m otherwise 语句组n end
只会执行一个
for语句
for 循环变量 = 表达式1(初值):表达式2(步长):表达式3(终值) 循环体语句 end
while语句
while 条件 循环体语句 end
函数文件的定义和调用
定义
function 输出形参表 = 函数名(输入形参表)
子主题
注释说明部分
函数体语句
有多个形参时,用逗号分隔组成形参表
输出形参多于一个时,用方括号括起来,构成输出矩阵
return语句表示结束函数的执行
调用
[输出实参表] = 函数名(输入实参表)
[s,p] = fcircle(10)
匿名函数
函数句柄变量 = @(函数参数输入参数)匿名函数表达式
函数的递归调用
函数定义中
function f=fact(n)
fact(n-1)
函数参数和变量的作用域
函数参数的可调性
nargin
输入的实参个数
nargout
输出的实参的个数
变量
局部变量
全局变量
0 条评论
下一页