一、本文主要内容和相关参考博客
二、相关实例
1)要明确函数表达式和定义域,因为他们传入到plot等画图函数中。
y1 = arcsin(x) x[-1,1]; y2 = arccos(x) x[-1,1];
2)画图代码如下:
%%
x = linspace(-1,1,100);%%返回包含 x1 和 x2 之间的 100 个等间距点的行向量。
y = asin(x);
plot(x,y);
title('反正弦函数图像');
grid on;
xlabel('x');
ylabel('y');
figure;
x = linspace(-1,1,100);
y = acos(x);
plot(x,y);
title('反余弦函数图像');
grid on;
xlabel('x');
ylabel('y');
3)title: 设置标题;grid on : 绘制网格;xlabel 和ylabel: 设置横纵坐标;figure:另外再开启一张图。正是因为有了figure命令的存在,最终得到的结果才有两幅图,如下:
4)当然也可以将两个函数画在同一张图片,使用 hold on命令即可,同时使用这个set(gca,'ytick',ylabel_pos,'yticklabel',ylabel_str);语句,其中‘ylabel_pos’是用来来设置y轴的间隔大小,'ylabel_str'是用来描述各个间隔的字符,ylabel_pos和ylabel_str这两个数组长度尽量保持一致。具体可见上文引用的第一个链接,代码如下。
x = linspace(-1,1);
y1 = asin(x);
plot(x,y1);
hold on;
y2 = acos(x);
plot(x,y2);
ylabel_pos = -pi:pi/4:2*pi;
ylabel_str = {'-pi','-3/4*pi','-2/4*pi','-1/4*pi','0','1/4*pi','2/4*pi','3/4*pi','pi','5/4*pi'};
%set(gca,'ytick',-pi:pi/4:2*pi);%set语句必须放在画图函数的后面
set(gca,'ytick',ylabel_pos,'yticklabel',ylabel_str);
title('asin(x)与acos(x)图像比较');
grid on;
xlabel('x');
ylabel('y');
legend('asin(x)','acos(x)');
未使用set(gca,'ytick',ylabel_pos,'yticklabel',ylabel_str);得到以下图像。
如图3所示,y轴的间隔即使由matlab自动控制的,再看图4,使用set(gca,'ytick',ylabel_pos,'yticklabel',ylabel_str);得到以下图像。
如图4所示,y轴的间隔和标注即设成了我们想要的。
2.关于set(gca,'ytick',ylabel_pos,'yticklabel',ylabel_str);的说明,如下。
ylabel_pos = -pi:pi/4:2*pi; %按照自己想要的间隔分
ylabel_str =
{'-pi','-3/4*pi','-2/4*pi','-1/4*pi','0','1/4*pi','2/4*pi','3/4*pi','pi','5/4*pi'};%每个间隔点的自定义字符表示
set(gca,'ytick',ylabel_pos,'yticklabel',ylabel_str);
set语句必须放在画图函数的后面,不然就无法使y轴的间隔和标注即设成了我们想要的,而还是会由matlab自动确定。
也可以 set(gca,'ytick',ylabel_pos); set(gca,'yticklabel',ylabel_str);
以上两句与set(gca,'ytick',ylabel_pos,'yticklabel',ylabel_str);等价。