MATLAB常用函数汇总

(一)基本函数

函数 作用 举栗子
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
补充说明:“clear 变量名”可清除工作区中的指定变量(如果多个变量,用空格隔开)
% 例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°
补充说明
atan(a/b):根据正切值a/b求出对应的角度,返回角度范围是[-π/2, π/2]
atan2(a,b):根据正切值a/b和点 (b, a) 所在的象限求出角度,返回角度范围是[-π, π]
% 例子
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)

(五)画图相关

用matlab的plot()/polarplot()画图
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); % 清空画布的内容

猜你喜欢

转载自blog.csdn.net/zuoan1993/article/details/123342329