很全很强大!
MATLAB常用的基本数学函数
abs(x):纯量的绝对值或向量的长度
angle(z):复数z的相角(Phase angle)
sqrt(x):开平方
real(z):复数z的实部
imag(z):复数z的虚部
conj(z):复数z的共轭复数
round(x):四舍五入至最近整数
fix(x):无论正负,舍去小数至最近整数
floor(x):地板函数,即舍去正小数至最近整数
ceil(x):天花板函数,即加入正小数至最近整数
rat(x):将实数x化为分数表示
rats(x):将实数x化为多项分数展开
sign(x):符号函数 (Signum function)。
当x<0时,sign(x)=-1;
当x=0时,sign(x)=0;
当x>0时,sign(x)=1。
rem(x,y):求x除以y的余数
gcd(x,y):整数x和y的最大公因数
lcm(x,y):整数x和y的最小公倍数
exp(x):自然指数
pow2(x):2的指数
log(x):以e为底的对数,即自然对数或
log2(x):以2为底的对数
log10(x):以10为底的对数
MATLAB常用的三角函数
sin(x):正弦函数
cos(x):余弦函数
tan(x):正切函数
asin(x):反正弦函数
acos(x):反余弦函数
atan(x):反正切函数
sinh(x):双曲正弦函数
cosh(x):双曲余弦函数
tanh(x):双曲正切函数
asinh(x):反双曲正弦函数
acosh(x):反双曲余弦函数
atanh(x):反双曲正切函数
变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算:
x = [1 3 5 2];
y = 2*x+1
y =
3 7 11 5
很全很强大!
小提示:变数命名的规则
1.第一个字母必须是英文字母
2.字母间不可留空格
3.最多只能有19个字母,MATLAB会忽略多余字母
用于向量的常用函数有:
min(x): 向量x的元素的最小值
max(x): 向量x的元素的最大值
mean(x): 向量x的元素的平均值
median(x): 向量x的元素的中位数
std(x): 向量x的元素的标准差
diff(x): 向量x的相邻元素的差
sort(x): 对向量x的元素进行排序(Sorting)
length(x): 向量x的元素个数
norm(x): 向量x的欧氏(Euclidean)长度
sum(x): 向量x的元素总和
prod(x): 向量x的元素总乘积
cumsum(x): 向量x的累计元素总和
cumprod(x): 向量x的累计元素总乘积
dot(x, y): 向量x和y的内积
cross(x, y): 向量x和y的外积
(大部份的向量函数也可适用于矩阵,详见下述。)
下表即为MATLAB常用到的永久常数。
i或j:基本虚数单位
eps:系统的浮点(Floating-point)精确度
inf:无限大, 例如1/0
nan或NaN:非数值(Not a number),例如0/0
pi:圆周率 p(= 3.1415926...)
realmax:系统所能表示的最大数值
realmin:系统所能表示的最小数值
nargin: 函数的输入变量个数
nargout: 函数的输出变量个数
2.基本xy平面绘图命令
plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y坐标。下例可画出一条正弦曲线:
close all; x=linspace(0, 2*pi, 100); % 100个点的x坐标
y=sin(x); % 对应的y坐标
plot(x,y);
MATLAB基本绘图函数
plot: x轴和y轴均为线性刻度(Linear scale)
loglog: x轴和y轴均为对数刻度(Logarithmic scale)
semilogx: x轴为对数刻度,y轴为线性刻度
semilogy: x轴为线性刻度,y轴为对数刻度
若要画出多条曲线,只需将坐标对依次放入plot函数即可
很全很强大!
plot(x, sin(x), x, cos(x));
若要改变颜色,在坐标对后面加上相关字串即可:
plot(x, sin(x), 'c', x, cos(x), 'g');
若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:
plot(x, sin(x), 'co', x, cos(x), 'g*');
plot绘图函数的叁数
字元 颜色 字元 图线型态
y 黄色 . 点
k 黑色 o 园
w 白色 x x
b 蓝色 + +
g 绿色 * *
r 红色 - 实线
c 亮青色 : 点线
m 锰紫色 -. 点虚线
图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]);
此外,MATLAB也可对图形加上各种注解与处理:
xlabel('Input Value'); % x轴注解
ylabel('Function Value'); % y轴注解
title('Two Trigonometric Functions'); % 图形标题
legend('y = sin(x)','y = cos(x)'); % 图形注解
grid on; % 显示格线
可用subplot来同时画出数个小图形于同一个视窗之中:
subplot(2,2,1); plot(x, sin(x));
subplot(2,2,2); plot(x, cos(x));
subplot(2,2,3); plot(x, sinh(x));
subplot(2,2,4); plot(x, cosh(x));
其他各种二维绘图函数
bar 长条图
errorbar 图形加上误差范围
fplot 较精确的函数图形
polar 极坐标图
hist 累计图
rose 极坐标累计图
stairs 阶梯图
stem 针状图
fill 实心图
feather 羽毛图
compass 罗盘图
quiver 向量场图
很全很强大!
针对每个函数举例,当资料点数量不多时,长条图是很适合的表示方式: close all; % 关闭所有的图形视窗
x=1:10;
y=rand(size(x));
bar(x,y);
如果已知资料的误差量,就可用errorbar来表示。下例以单位标准差来做资料的误差量:
x = linspace(0,2*pi,30);
y = sin(x);
e = std(y)*ones(size(x));
errorbar(x,y,e)
对于变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:
fplot('sin(1/x)', [0.02 0.2]); % [0.02 0.2]是绘图范围
若要产生极坐标图形,可用polar:
theta=linspace(0, 2*pi);
r=cos(4*theta);
polar(theta, r);
对于大量的资料,可用hist来显示资料的分 情况和统计特性。下面几个命令可用来验证randn产生的正态随机数:
x=randn(5000, 1); % 产生5000个 ?=0,?=1 的正态随机数
hist(x,20); % 20代表长条的个数
rose和hist很接近,只不过是将资料大小视为角度,资料个数视为距离,? 用极坐标绘制表示:
x=randn(1000, 1);
rose(x);
stairs可画出阶梯图:
x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
stairs(x,y);
stems可产生针状图,常被用来绘制数位讯号:
x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
stem(x,y);
stairs将资料点视为多边行顶点,并将此多边行涂上颜色:
x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
fill(x,y,'b'); % 'b'为蓝色
feather将每一个资料点视复数,并以箭号画出:
theta=linspace(0, 2*pi, 20);
z = cos(theta)+i*sin(theta);
feather(z);
compass和feather很接近,只是每个箭号的起点都在圆点:
很全很强大!
theta=linspace(0, 2*pi, 20);
z = cos(theta)+i*sin(theta);
3、基本矩阵和矩阵操作
blkding 从输入参量建立块对角矩阵
eye 单位矩阵
linespace 产生线性间隔的向量
logspace 产生对数间隔的向量
numel 元素个数
ones 产生全为1的数组
rand 均匀颁随机数和数组
randn 正态分布随机数和数组
zeros 建立一个全0矩阵
cat 连接数组
diag 对角矩阵和矩阵对角线
fliplr 从左自右翻转矩阵
flipud 从上到下翻转矩阵
repmat 复制一个数组
reshape 改造矩阵
roy90 矩阵翻转90度
tril 矩阵的下三角
triu 矩阵的上三角
dot 向量内积
cross 向量外积
三、适用於向量的常用函数有:
min(x): 向量x的元素的最小值
max(x): 向量x的元素的最大值
mean(x): 向量x的元素的平均值
median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差
diff(x): 向量x的相邻元素的差
sort(x): 对向量x的元素进行排序(Sorting) length(x): 向量x的元素个数
norm(x): 向量x的欧氏(Euclidean)长度 sum(x): 向量x的元素总和
prod(x): 向量x的元素总乘积
cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积
cross(x, y): 向量x和y的外积
四、MATLAB的永久常数
i或j:基本虚数单位(即)
很全很强大!
eps:系统的浮点(Floating-point)精确度 inf:无限大, 例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率 p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargin: 函数的输出引数个数 五、MATLAB基本绘图函数 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 六、plot绘图函数的叁数 字元 颜色 字元 图线型态 y 黄色 . 点 k 黑色 o 圆 w 白色 x x b 蓝色 + + g 绿色 * * r 红色 - 实线 c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线 七、注解 xlabel('Input Value'); % x轴注解 ylabel('Function Value'); % y轴注解 title('Two Trigonometric Functions'); % 图形标题 legend('y = sin(x)','y = cos(x)'); % 图形注解 grid on; % 显示格线 八、二维绘图函数 bar 长条图 errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图