(一)基本函数
函数 |
作用 |
举栗子 |
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); % 清空画布的内容