搜索
您的当前位置:首页正文

MATLAB常用命令

来源:六九路网
http://www.shumo.com/forum/viewthread.php?tid=4507&extra=page%3D4&page=1

MATLAB常用命令

小整理: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):反正切函数

atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数

===============================================

1

变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(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常用到的永久常数。 小整理: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入门教程--二维绘图 MATLAB 程式设计与应用 2.基本xy平面绘图命令

MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示 (Scientific visualization)。本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制、列印及

2

存档。

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));

3

subplot(2,2,3); plot(x, sinh(x)); subplot(2,2,4); plot(x, cosh(x));

MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。 ==================================================== 小整理:其他各种二维绘图函数 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);

4

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); compass(z);

http://www.blowerchina.com/index.asp vfdff/77*****

引用地址:http://blog.programfan.com/trackback.asp?id=15932

例1-2 使用MATLAB求方程3x4+7x3 +9x2-23=0的全部根。 p=[3,7,9,0,-23]; %建立多项式系数向量 x=roots(p) %求根

matlab微积分问题:求极限

1. 单变量极限求解 L=

L=limit(fun,x,x0) 求极限

L=limit(fun,x,x0,’left’或’right’) 求单边极限 例:求极限

解:>>syms x a b; f=x*(1+a/x)^x*sin(b/x); L=limit(f,x,inf) L = exp(a)*b

5

例:求单边极限

解:>> syms x; limit((exp(x^3)-1)/(1-cos(sqrt(x-sin(x)))), x, 0,'right') ans =12

2. 多变量函数极限 L=,可通过嵌套使用limit()函数: L1=limit(limit(f,x,x0), y, y0) 或 L1=limit(limit(f,y,y0), x, x0)

如果x0或y0不是确定的值,而是另一个变量的函数,例如,则上述的极限求取顺序不能交换。

例:求极限

解:>> syms x y a; f=exp(-1/(y^2+x^2))*sin(x)^2/x^2*(1+1/y^2)^(x+a^2*y^2);

L=limit(limit(f,x,1/sqrt(y)),y,inf) L = exp(a^2)

6

因篇幅问题不能全部显示,请点此查看更多更全内容

Top