Matlab常用函数和技巧总结

论坛 期权论坛 脚本     
匿名技术用户   2021-1-6 07:37   1077   0

本篇只是关于matlab的日常总结,比较杂乱,内容丰富后再进行分篇整理

函数求导

  • 一阶导数diff(f)
  • 二阶导数diff(f,2)

函数求积分

  • 不定积分int(f,x)
  • 定积分int(f,x,1,10)

将变量或式子显示为我们常用的书面形式

  • pretty(ans)

矩阵求逆

  • inv(A)
  • 当用A的逆左乘其他矩阵时,M=inv(A)*B不如M=A\B运算更快

函数化简

  • f=collect(f);%化简
  • f=vpa(f,6);%精度为6

检查函数输入个数

  • nargin%表示该函数输入参数的个数

subs替换函数

  • 用0代替自变量x,返回该形式下的函数值

ezplot绘图函数

  • 绘制函数f的图像ezplot(f)
  • 绘制函数f在区间[1,10]的图像ezplot(f[1,10])

无穷大

  • inf%正无穷大
  • -inf%负无穷大

end索引

  • 使用end索引到向量的最后一个元素

解方程组

防止分母为零

  • 分母加eps
  • limit()

解决solve求解方程组时出现root与变量z的问题

syms b m y
eqn = (-b-2)* y^3+ 3* b *m*y^2-3*b*m^2*y+b*m^3== 0;
y = solve(eqn, y)

  • 使用roots()函数
syms b m y
eqn = (-b-2)* y^3+ 3* b *m*y^2-3*b*m^2*y+b*m^3== 0;
y = solve(eqn, y);
roots(y)

向量转置

length()

  • 查看向量中元素个数

判断两个数值是否相等时最好不要用==

  • 因为精度原因,直接用==判断,并不能如意
  • 用两个数值差<=1e-5比较好,精度自己掌握

学会使用digits和vpa

  • 此处,如果不用digits和vpa去控制,则可能在if语句判断时,t_current明明等于t(m+1),却满足不了该条件

fprintf()

  • fprintf('t2_i:%d, t3_i:%d, t4_i:%d, t5_i:%d', t2_i, t3_i, t4_i, t5_i);
  • 可以打印变量值

disp()

  • disp('hello world');
  • 不能打印变量值

保存变量

  • save('data','t2_i', 't3_i', 't4_i', 't5_i')
  • 将变量保存在data.mat文件

solve

  • sol = solve(conds, [v_sym a_sym], 'ReturnConditions', true);%conds为不等式方程组向量;[v_sym a_sym]是变量
  • sol = solve(conds, [v_sym a_sym]);%conds为等式方程组向量,[v_sym a_sym]是变量

strsplit切分字符串

  • conditions_str = char(sol.conditions);%先转成char
    conditions_ = strsplit(conditions_str,'&');%用strsplit对其切分,切分符号为‘&’

isempty()

  • 判断元素是否为空

isreal()

  • 判断元素是否为实数

str2num()

  • 字符转数字

axis equal

  • 保持各轴的比例一样

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP