0
点赞
收藏
分享

微信扫一扫

MATLAB常用函数汇总

晴儿成长记 2022-03-11 阅读 48

(一)基本函数

函数作用举栗子
clear清除工作区中的所有变量
clc清除命令行中的所有代码
help 函数名 或 doc 函数名查找函数帮助
syms定义符号变量syms x y ;
sym('f')定义符号表达式sym('x*y^2')
pi圆周率(matlab区分大小写)π
vpa(x,k)x的数值,保留k位有效数字x=vpa(sin(1/3), 2) ⇨x=0.33
real(x)求复数x的实部x = real(1+2i) ⇨ x = 1
eval()字符串转数值x = eval('5') ⇨ x = 5
sqrt()开根号x = sqrt(4) ⇨ x = 2
exp()以自然常数e为底的指数函数x = exp(2) ⇨ y = e²
log()以e为底的对数函数x = log(exp(1)) ⇨ x = 1
log10()以10为底的对数函数x = log(10) ⇨ x = 1
abs()取绝对值x = abs(-1) ⇨ x = 1
mod(m,n)m对n取余,返回m/n的余数x = mod(3,2) ⇨ x = 1
% 例1
syms x;
x1=1.5;        % x1变为double型
% 例2
x1=1.5;         % x1变为double型
% 例3
syms x y;
f3 = x*y^2;
% 例4
f4=sym('x*y^2') % 例3<=>例4,作用相同
% 例5
f5=sym(A)  % 将非符号对象(如,数字,表达式,变量等)A转换为符号对象,并存储在符号变量f5中

(二)三角函数相关

函数作用备注
sin()、cos()、tan()、cot()三角函数x=sin(deg2rad(30)) ⇨x=0.5
rad2deg()、deg2rad()弧度转角度、角度转弧度x=deg2rad(30) ⇨ x=0.5236
asin()、acos()、
atan()、acot()
反三角函数,结果为弧度值x = asin(0.5) ⇨ x = 0.5236
asind()、acosd()、atand()、acotd()反三角函数,结果为角度值x = asind(0.5) ⇨ x = 30.0°
% 例子
theta = rad2deg(atan(sin(deg2rad(45))/cos(deg2rad(45))))
% 结果 theta = 45
theta = rad2deg(atan2(sin(deg2rad(45)),cos(deg2rad(45))))
% 结果 theta = 45
theta = rad2deg(atan(sin(deg2rad(135))/cos(deg2rad(135))))
% 结果 theta = -45.0000
theta = rad2deg(atan2(sin(deg2rad(135)),cos(deg2rad(135))))
% 结果 theta = 135

(三)向量、矩阵操作相关

函数作用备注
size(A)返回矩阵的行数和列数
size(C,1) / size(C,2)返回矩阵的行数 / 列数
length(A) 或 max(size(A))返回长度最大的维度的长度
numel(A)返回矩阵元素的总个数
sum(A)返回矩阵所有元素的和x = sum([1,2]) ⇨ x = 3
inv(A)返回矩阵A的逆
ndims(A)返回矩阵A的维度单个数值、向量和二维矩阵返回值均为2
iscolumn(x) / isrow(x)判断是否为列向量 / 行向量
isvector() / ismatrix()判断是否为向量 / 矩阵
isempty(x) / isscalar()判断是否为空向量 /单个数值
dot(a, b)向量a点乘b,点积
cross(a, b)向量a叉乘b,叉乘
repmat(A,m,n)通过将A复制m行n列,返回m*n的矩阵
A = [1]
U = repmat(A,2,2)
% 结果 
U = [1     1
     1     1]

(四)解方程、符号表达式相关

函数作用备注
simplify(f)化简公式f
collect(f)合并同类项
expand(f)展开公式
horner(f)将乘法嵌套数值计算性能较好
factor(f)因式分解
pretty(f)相对直观地显示公式复杂的公式不行
[n,d] = numden(f)通分,返回分母n,分子d通分前会先自动化简表达式
  • 解三角函数方程
% 解三角函数方程
clear;clc;
syms theta1
x=0;y=670;L1=260;L2=260;L3=150;
% 方法一:复杂
eqn = 2*x*(L1+L3)*cos(theta1)+2*y*(L1+L3)*sin(theta1) == x^2+y^2+(L1+L3)^2-L2^2;
theta1 = solve(eqn,theta1);
theta1 = real(theta1)

% 方法二:推荐,简单
eqn = 2*x*(L1+L3)*cos(theta1)+2*y*(L1+L3)*sin(theta1) == x^2+y^2+(L1+L3)^2-L2^2;
theta1 = solve(eqn,theta1,'Real',true)

(五)画图相关

figure()创建画布
clf()清空画布的内容
set()设置图形对象属性,如画布名字、在屏幕上的位置等
plot(X,Y)创建 Y 中数据对 X 中对应值的二维线图
plot3()绘制三维图像
xlabel()、ylabel()横轴、纵轴标签
xlim()、ylim()横轴、纵轴范围
text()标注图线名称
title()添加图题
hold on / hold off不刷新画布(在一张画布画多张图) / 刷新画布
legend()添加图例
grid on / grid off打开 / 关闭网格线
grid minor打开最小网格线
box on / box off打开 / 关闭 右、上边框线
save()保存工作区变量
saveas() / imwrite()保存图片
% 例子
clc;clear;close all;
x=0:0.1:pi; y=sin(x); z=cos(x);
h1 = figure(1);  % 创建画布,画布编号为1
set(h1,'name','图1');
set(h1,'pos',[350 250 850 340]);
% 线宽、数据点标记形状、标记填充颜色、标记框线颜色、标记大小
p1 = plot(x,y,x,z,'linewidth',2,'Marker','s','MarkerFaceColor','w','MarkerEdgeColor','g','MarkerSize',10); 
xlabel('X');ylabel('Y');
xlim([0,pi]);ylim([-2,2]);
set(get(gca,'XLabel'),'FontSize',8); % 设置X轴数字大小
title('足端轨迹');
text(pi,0,'正弦'); text(pi/2,0,'余弦');
[a,b] = max(y);
text(x(b),a,'正弦函数值最大点');
hold on;
p2 = plot(x,y+z,'r','linewidth',2,'Marker','s','MarkerFaceColor','w'); % 线颜色、线形
legend('sin x','cos x','Fontsize',12,'Location','southeast','fontname','Times');
legend('boxoff'); % 关闭图例外框
grid on;
set(gca,'GridLineStyle',':','GridColor','r','GridAlpha',1); % ':':网格线虚线;'-':网格线实线
grid minor;
box off;
save('a.mat','a','b')
saveas(h1,'三角函数.jpg'); % 保存图片
% clf(1); % 清空画布的内容
举报

相关推荐

0 条评论