matlab绘图
MATLAB中常用函数
函数名 | 描述 |
abs(x) | 计算x的绝对值 |
acos(x) | 计算x的反余弦函数 |
angle(x) | 计算复数x的幅角 |
asin(x) | 计算x反正弦函数值 |
atan(x) | 计算x的反正切函数值 |
cos(x)) | 计算余弦 |
exp(x) | |
log(x) | 计算 |
[value,index]=max(x) | 返回x中的最大值和他所处的位置 |
[value,index]=min(x) | 返回x中的最小值和他所处的位置 |
sin(x) | 正弦函数 |
sqrt(x) | x的平方根 |
tan(x) | 正切函数 |
rounding,fix,ceil round | 取整函数 |
char(x) | 将数字转化为字符 |
double(x) | 将字符串转化为矩阵 |
int2str(x) | 将整数x转化为字符串的形式 |
num2str(x) | 将带小数点的数转化为一个字符型的数 |
str2num(x) | 将字符串转化为数 |
①只有一个变量的绘图
step:定义函数;指定要绘制函数的范围;调用MATLAB的plot(x,y)函数
当指定函数值得范围的时候,我们必须告诉MATLAB函数使用的变量值得增量,使用较少的增量可以使图形显示更加平滑,增量较小,MATLAB可以计算出更多 的函数值,不过通常不需要取得很小。
>> x=[0:0.1:10];
>> y=cos(x);
>> plot(x,y)
把增量扩大10倍
>> x=[0:1:10];
>> y=cos(x);
>> plot(x,y)
很明显,增量会影响平滑程度
②fplot命令
它可以绕过函数选择用来绘图的时间间隔,而自动为我们决定烩土豆额点数
fplot(‘function string’,[xstart,xend])
参数function string 表明你要绘制的函数图形,后面两个参数定义了函数的区间。
另外对于plot函数
里面还可以添加很多的参数
xlabel,ylabel是横纵坐标的标签
title是图型的标题
grid on是给图形添加网格。
grid off是去除网格
print命令可以在打印机上打出当前图片
在plot中要绘制多个图形
在plot中的参数使用一对一对的,“x,y”,“x,y“。这两对之间是相互独立的,后面跟着用单引号引起来,表示绘制第二条曲线的字符串风格。
>>t=[0:0.1;5];
>>f=exp(-t);
>> g = exp(-2*t);
>>plot(t,f,t,g,'--')
图像的颜色,标记(符号)类型,线型
颜色 | 标记类型 | 线型 |
y 黄色 | . 点 | - 实线 |
m 品红色 | o 圈 | : 点线 |
c 青绿色 | x x号 | -. 画点线 |
r 红色 | s 正方形 | – 虚线 |
g 绿色 | d 菱形 | 无 |
b 蓝色 | v 倒三角 | |
w 白色 | ^ 正三角 | |
k 黑色 | > 三角(向右) | |
< 三角(向左) | ||
p 五角星 | ||
h 六线形) | ||
无 |
legend:制作图例
legend off 能去除多余的图例
legend(‘string1’,‘string2’,...pos)
例子:画出y=-10+15的图像
x=0:1:10;
y=x.^2-10.*x+15;
plot(x,y,'r--',x,y,'bo');
显示f(x)=sin2x的图像
x=0:pi/100:2*pi;
y1=sin(2*x);
y2=2*cos(2*x);
plot(x,y1,'k-',x,y2,'b--');
title('plot of f(x)=sin(2x) and its derivative);
xlabel('x');
ylabel('y');
legend('f(x)','d/dx f(x)')
grid on;
对数尺度
打印的数据既可以用对数尺度,也可以用线性尺度,在x,y轴上使用这两种尺度的一种或者两种可以组合成4种不同的坐标系,每一种组合都有一种特定的函数。
1.plot函数的x,y均用线性尺度
2.semilog函数的x轴用对数尺度,y轴用线性尺度
3.semiloge函数x轴用线性尺度,y轴用对数尺度
4.loglog函数两坐标轴将会都用对数尺度。
这四个函数在意义上是等价的,只是坐标轴的类型不同
legend中的pos的值
值 | 意义 |
0 | 自动寻找最佳位置,至少不与数据冲突 |
1 | 在图像的右上角 |
2 | 在图像的左上角 |
3 | 在图像的左下角 |
4 | 在图像的右下角 |
-1 | 在图像的右边 |
例子
设计的程序步骤如下
1.提示用户键入华氏温度值
2.读取输入值
3.通过关系式转化为开式温度
4.输出结果,结束
我们用input函数输入华氏温度,用fprintf函数输出结果。
%提示用户输入温度
temp_f=input('enter the temperature in degrees Fahrenheit:');
%转换率
temp_k=(5/9)*(temp_f-32)+273.15;
%打印结果
fprint(‘%6.2f degrees Fahrenheit=%6.2f kelvins.\n’...
temp_f,temp_k);
自行输入值,输出结果
MATLAB中的常见符号总结
[] | 数组构造器 |
() | 用来装载下标 |
‘’ | 用来限制字符串 |
, | 分开下标,或者分开元素 |
; | 防止命令在窗口重复&分开矩阵的行&在一行内分开几个赋值语句 |
% | 注释的开始 |
: | 克隆运算符 |
+ | 矩阵和数组的加法 |
- | 矩阵和数组的减法 |
.* | 数组的乘法 |
* | 矩阵的乘法 |
./ | 数组右除法 |
.|数组左左乘法 | |
/ | 矩阵右除法 |
|矩阵的左除法 | |
.^ | 数组幂运算 |
’ | 转义运算符和命令 |
… | 表示语句太长,转到第二行写 |
Inf | 表示无穷大,它一般是除以0产生的 |
NaN | 这个符号代表没有这个数,一般是由于数学运算得到的 |
eps | 变量名是epsilon的简写,他代表计算机能识别出的两个数之间的最小值 |
ans | 常用于存储表达式的结果, |
plot | 函数的x,y均用线性尺度 |
semilog | 函数x轴用对数尺度,y轴用线性尺度 |
semiloge | 函数x轴用线性尺度,y轴用对数尺度吧 |
loglog | 两个坐标轴都会用对数尺度 |