暑假用一周配合慕课中南大学的视频学习了MATLAB基础,最后部分的Simulink仿真和与外部程序接口C++了解不深,在此把前面的整理一下。
导言:四种方法求根
%利用MATLAB多项式求根函数roots来求根。
p=[1,-3,1];
x=roots(p)
%绘图:
x=-5:0.1:5;
y1=x.*x-3*x+1;
y2=zeros(size(x));
plot(x,y1,x,y2);
%方法二 : 利用求单变量非线性方程根的函数fzero,求方程在某个初始点附近的实根。
f=@(x)x*x-3*x+1;
x1=fzero(f,0.5)
x2=fzero(f,2.5)
%方法三:利用最优化工具箱中的方程求根函数fsolve。
f=@(x)x*x-3*x+1;
x1=fsolve(f,0.5,optimset('Display','off'))
x2=fsolve(f,2.5,optimset('Display','off'))
%方法四:利用solve函数求方程的符号解,即求得的解是一个表达式。
syms x
x=solve(x^2-3*x+1)
%转换为数值
x=eval(x)
命令汇总:
%{
home 移动光标至左上角
Tab 自动补全命令
help 查询命令信息
type 查询文件内容
what 列出.m和.mat文件
which 查找文件路径
delete 删除文件
cd 改变当前目录
dir 列出当前目录内容
fopen/fclose/fread/fwrite
quit/exit/Ctrl+q 退出matlab
size 查询矩阵维数
disp 显示矩阵、文本
length 查询矢量维数
format 设置输出格式
tic toc 记录语句完成时间
Ctrl+r 注释
Ctrl+t 取消注释
%{ %} 多行注释
Ctrl+g 跳转至某行
F5 运行
F10 单步运行调试
F12 设置/取消断点
Shift+F5 退出调试模式
Ctrl+i 缩进(需选中)
Ctrl+F2 标注/取消标注当前行
Esc 删除当前行全部内容
Ctrl+c 强制中断运行
Ctrl+Tab 切换当前空间(命令行窗口-工作区-当前文件夹)
realmin 最小浮点数 2^-1022
realmax 最大浮点数 (2-eps)^1022
inf 无限值
exp(n) e^n
eps 浮点相对精度 2^-52
NaN 空值
... 续行符
path(path,'e:\work') path命令设置文件搜索路径
同时使用多个图窗:
f1 = figure;
f2 = figure;
plot([1 2 3],[2 4 6]);//默认画在当前图窗f2
figure(f1);//设置当前图窗为f1
scatter((1:20),rand(1,20));//画在f1上
***** 打开绘图工具:plottools *****
二维绘图:
plot: 绘制二维图形的函数
subplot: 创建子图
fplot: f(x)函数自适应采样绘制
hold: 图形保持
polar: 极坐标图
contour: 等高线图
bar barh: 条形图
hist rose: 直方图(直角、极坐标下)
pie: 扇形图
scatter: 散点图
stairs: 阶梯图
stem: 杆图
compass: 罗盘图
feather: 羽毛图
quiver: 箭头图
loglog: 双对数坐标图
semilogx: X轴为对数的坐标图
semilogy: Y轴为对数的坐标图
text: 放置文本
gtext: 跟随鼠标放置文本
title: 标注图形的文本标题
legend 图例标注
axis: 设置坐标框大小
xlabel: X轴坐标标记
ylabel: Y轴坐标标记
grid 网格
box 边框
fill: 填充二维多边图形
三维绘图:
plot3 绘制三维图形
fplot3 参数化曲线绘图
meshgrid 生成平面网格数据
mesh 绘制三维网格图
surf 绘制三维曲面图
meshc meshz surfc surfl 添加等高线 底座 等高线 光照效果
sphere 绘制三维球面
cylinder 绘制三维柱面
peaks 生成绘图数据矩阵
view 视点处理
Colormap 设置色图
shading 表面着色
NaN 图形裁剪
矩阵运算:
矩阵的秩 rank(A)
矩阵的行列式值 det
矩阵的迹 trace(A)
矩阵的范数 norm
矩阵的条件数 cond
提取矩阵(向量)对角线元素 diag
上(下)三角矩阵 triu(trid)
矩阵的旋转 rot90
矩阵的左右(上下)翻转 fliplr(flipud)
矩阵求逆 inv(A)
特殊矩阵 zeros ones eye rand randn
专门学科特殊矩阵 magic Vandermonde Hibert compan pascal
特征值与特征向量 eig
稀疏存储与完全存储方式转化 sparse full
带状稀疏矩阵 spdiags
单位矩阵的稀疏存储 speye
数据统计分析:
向量、矩阵最大最小元素: max min
平均值、中值 mean median
求和、求积 sum prod
累加和、累乘积 cumsum cumprod
标准差、相关系数 std corrcoef
多项式计算:
相乘 相除 conv deconv
求导 polyder
代数、矩阵求多项式的值 polyval polyvalm
求根 roots
一、二维数据插值 interp1 interp2
曲线拟合建立多项式函数 polyfit
数值微积分与方程:
数值微分 diff
定积分 quad quadl integral quadgk
数值积分 trapz
二重积分 integral2 quad2d dblquad
三重积分 integral3 triplequad
线性方程组求解直接法 \左除 [L,U]分解
线性方程组迭代法 jacobi gauseidel
单变量非线性方程求解 fzero
非线性方程组求解 fsolve
一元函数极值求解(无约束) fminbnd
多元函数极值求解(无约束) fminsearch fminunc
多元函数极值求解(有约束) fmincon
常微分方程数值 ode45 (odennxx)
刚性问题 ode15s (odenns)
符号运算:
建立符号对象 sym syms
转化为数值结果 eval
设置值域 assume
分解符号表达式 factor
展开符号表达式 expand
(按变量)合并同类项 collect
提取符号表达式分子分母 numden
提取符号表达式系数 coeffs
符号表达式化简 simplify
符号 -> 多项式系数向量 sym2oply
向量 -> 符号表达式 poly2sym
符号函数的极限 limit
符号函数的导数 diff
符号函数的(不定/定)积分 int
级数求和 symsum
泰勒级数 taylor
代数方程符号求解 solve
常微分方程(组)求解 dsolve
Simulink:
启动 simulink
步骤:①建立系统仿真模型 (添加模块 设置模块参数 进行模块连接)
②设置仿真参数 (选择仿真起止时间 求解算法)
③启动仿真并分析仿真结果
子系统 Subsystem模块
S函数System Function 一种功能模块
模板文件 edit sfuntmpl.m
ctrl+r/l 旋转模块
外部程序接口:
%}