用matlab绘图时,如何只设定一个轴范围?

用plot命令绘图,只想设定x轴的范围,而y轴的范围确是不确定的,请问用什么命令比较好?例如:y=f(x)函数非常复杂,y的范围非常不确定,只期望观察到x在1.7到2.3... 用plot命令绘图,只想设定x轴的范围,而y轴的范围确是不确定的,请问用什么命令比较好?
例如:y=f(x)函数非常复杂,y的范围非常不确定,只期望观察到x在1.7到2.3之间的y值。
请问如何编程,用什么命令较好?请大家不吝赐教,谢谢!
展开
 我来答
IEIOA
推荐于2019-11-04 · TA获得超过2.2万个赞
知道答主
回答量:16
采纳率:100%
帮助的人:5754
展开全部

用matlab绘图时,只设定一个轴范围可以通过以下方法来实现:

使用 axis([XMIN XMAX YMIN YMAX]) ,对于不需要设置范围的轴,使用参数-inf,inf,即正负无穷之间

示例代码:

>> x = 1:10;

>> y = x.^2;

>> subplot(3,1,1)

>> plot(x,y,'r')

>> subplot(3,1,2)

>> plot(x,y,'g')

>> xlim([0,15])

>> subplot(3,1,3)

>> plot(x,y,'b')

>> axis([-1,12,-inf,inf])

绘图结果:

例子1:

y=f(x)函数非常复杂,y的范围非常不确定,只期望观察到x在1.7到2.3之间的y值。

xlim([1.7 2.3])

clc;clear

x=0:pi/20:2*pi;

y=sin(x);

plot(x,y)

xlim([ -pi 2*pi])

例子2:

有一个1*10000的矩阵X,需要把它画出来。要求是每一百点给出一个坐标刻度,刻度为y1,y2,y3,.....,y100

也就是:X(1)到X(100)画出在坐标轴的X(1)位置标出y1

X(101)到X(200)画出在坐标轴的X(101)位置标出y2

X(201)到X(300)画出在坐标轴的X(201)位置标出y3

......

X(9901)到X(10000)画出在坐标轴的X(9901)位置标出y100

clear,clc

t = 1:1:100;

y = sin(0.1*t);

plot(t,y)

set(gca,'XTick',1:20:100,'XTickLabel',1:20:100)

扩展资料:

MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。

开发环境

MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。

数学函数

MATLAB数学函数库包括了大量的计算算法。从基本算法如四则运算、三角函数,到复杂算法如矩阵求逆、快速傅里叶变换等。

语言

MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。用这种语言能够方便快捷建立起简单运行快的程序,也能建立复杂的程序。

图形处理

图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动画显示等函数。

程序接口

MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言进行交互的函数库。该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。

顾倾城shine
高粉答主

推荐于2019-08-16 · 说的都是干货,快来关注
知道答主
回答量:394
采纳率:100%
帮助的人:13.1万
展开全部

1、首先打开matlab绘图,这个程序绘图的结果y轴坐标范围不好,需要设定一个轴的范围。

2、用二维的话,则输入命令【axis([xmin xmax ymin ymax])】。

3、用三维的话,则输入命令【axis([xmin xmax ymin ymax zmin zmax])】。

4、将这个语句添加到plot作图语句后面来设置,如图所示。

5、这样,就设定一个轴范围了,图形全部在坐标轴范围内,是x最小,xmax是x最大。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小舅舅有点帅
推荐于2019-09-16 · TA获得超过1万个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

用matlab绘图时,只设定一个轴范围可以通过以下方法来实现:

使用 axis([XMIN XMAX YMIN YMAX]) ,对于不需要设置范围的轴,使用参数-inf,inf,即正负无穷之间

示例代码:

>> x = 1:10;

>> y = x.^2;

>> subplot(3,1,1)

>> plot(x,y,'r')

>> subplot(3,1,2)

>> plot(x,y,'g')

>> xlim([0,15])

>> subplot(3,1,3)

>> plot(x,y,'b')

>> axis([-1,12,-inf,inf])

绘图结果:

扩展资料

在MATLAB中显示图像(影像)的直方图时,横轴范围往往是[0,255]。在显示的时候,默认显示的范围往往大于这个范围,大出的的范围没有实际意义。

如果使用: axis([XMIN XMAX YMIN YMAX]) 就必须要知道YMIN和YMAX,因为axis对其参数的维数的要求是4、6或8;但对于图像的直方图,其纵轴范围往往不确定,所以横轴范围应该单独设定: xlim([XMIN XMAX]) 同理,在其他情况下,可以使用ylim、zlim.

一般会用axis([XMIN,XMAX,YMIN,YMAX]),但是假如只想对一个坐标轴如X轴或Y轴或Z轴设定范围, 可以使用一下数据:

xlim([XMIN,XMAX]);%对X轴设定显示范围 

ylim([YMIN,YMAX]);%对Y轴设定显示范围 

zlim([ZMIN,ZMAX]);%对Z轴设定显示范围 

例如:数字图像灰度统计图

% 数据生成及展示(真实情况可以用数字图像代替)

set(groot,'defaultAxesLineStyleOrder','remove','defaultAxesColorOrder','remove');

%每次使用记得清除上次设置的参数,否则设置的参数会被保留下来

x=1:255;y=rand(1,255);y=y';%y是行向量还是列向量都可以

n=length(x);

stem(x,y, 'Marker', 'none');

title('未设置坐标轴的区间','fontsize',14);

参考资料来源:百度百科 - MATLAB

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寒影是十二呀
2019-03-06 · TA获得超过1791个赞
知道答主
回答量:22
采纳率:0%
帮助的人:9621
展开全部

1.同时设置subplot的多幅图像的axis

peaks;

axis tight %Set the axis limits to equal the range of the data

axis square

axis 'auto x' //x轴坐标上下限自动调整

axis off %Plot a surface without displaying the axes lines and background.

set(gca,'Visible','off'); //消除坐标轴,显示范围的大小没有改变,同上句

tmp = gca;

tmp.XAxis.Visible = 'off'; //隐藏X轴的

//上面一句也可以隐藏Ticks,同时Box的上端也隐藏了,这就使得图像看上去不太好看

tmp.XTick= []; //这一句可以只隐藏Ticks

//更多特性可参考Matlab帮助文档,查找"Axes Properties"

//Create a figure with two subplots.set the axis limits for the subplots to the same values.

x1 = linspace(0,10,100);y1 = sin(x1);

ax1 = subplot(2,1,1);plot(ax1,x1,y1)

x2 = linspace(0,5,100);y2 = sin(x2);

ax2 = subplot(2,1,2);plot(ax2,x2,y2);

axis([ax1 ax2],[0 10 -1 1])

2.在原图上继续作图,而不改变原坐标系的区间

x = linspace(0,10);y = sin(x);plot(x,y)

y2 = 2*sin(x);hold on

axis manual %关键步骤,冻结axis 可以对比不加该语句的结果

plot(x,y2);hold off

3.改变坐标系的方向(指向)

C = eye(10); pcolor(C);

colormap summer

//Reverse the coordinate system so that the y values increase from top to bottom.

axis ij; //第i行,第j列

//上下两条语句等价

set(gca,'Ydir','reverse');

//y轴默认是指向上的

实际应用:结合axis,axes,colorbar等工具,制作一个数字图像灰度统计图。

//数据生成及展示(真实情况可以用数字图像代替)

set(groot,'defaultAxesLineStyleOrder','remove','defaultAxesColorOrder','remove');

//每次使用记得清除上次设置的参数,否则设置的参数会被保留下来

x=1:255;y=rand(1,255);y=y';//y是行向量还是列向量都无所谓

n=length(x);

stem(x,y, 'Marker', 'none');

title('未设置坐标轴的区间','fontsize',14);

4.坐标轴区间的自动设置(适用于直方图的显示)

//Get x/y limits of axes using axis

hist_axes = gca;

limits = axis(hist_axes);

if n ~= 1 //当只有一个值时设置x坐标轴

limits(1) = min(x);

else

limits(1) = 0;

end

limits(2) = max(x);

var = sqrt(y'*y/length(y));

limits(4) = 2*var; //只改变了y轴显示的高度

axis(hist_axes,limits);

title('设置了的坐标轴区间','fontsize',14);

5.改变图像的位置,宽和高,隐藏X轴的标注

// In GUIDE, default axes units are characters. In order for axes repositiong

// to behave properly, units need to be normalized.

hist_axes_units_old = get(hist_axes,'units');

set(hist_axes,'Units','Normalized');

//隐藏X轴的标注

//hist_axes.XAxis.Visible = 'off';

//上面一句也可以隐藏Ticks,同时Box的上端也隐藏了,这就使得图像看上去不太好看

//下面这一句可以只隐藏Ticks;

hist_axes.XTick= [];

//Get axis position and make room for others.

pos = get(hist_axes,'pos');

set(hist_axes,'pos',[pos(1) 0.15 pos(3) 0.75])

set(hist_axes,'Units',hist_axes_units_old); //坐标向上移动了,相应也调整了整个图众向比例

title('移动了的坐标原点','fontsize',14);

//设置ColorBar

c = colorbar('position',[pos(1) 0.1 pos(3) 0.05], 'location','southoutside');

c.Ticks= 0:0.125:1;

c.TickLabels = ceil((0:0.125:1)*255); //使用floor函数,Ticks与真实值似乎有偏差

c.Box = 'off'; //取消显示ColorBar的框框,这样使ColorBar的上框线看起来不粗

c.TickDirection = 'both';

colormap gray;

//colorbar最左下角点的横坐标、纵坐标、宽度、高度

title('一个灰度统计图的绘制就完成了','fontsize',14);

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
土豆仔文库
推荐于2019-11-17 · TA获得超过2971个赞
知道答主
回答量:44
采纳率:0%
帮助的人:2.3万
展开全部

1、首先打开matlab绘图,这个程序绘图的结果y轴坐标范围不好,需要设定一个轴的范围。

2、用二维的话,则输入命令【axis([xmin xmax ymin ymax])】。

3、用三维的话,则输入命令【axis([xmin xmax ymin ymax zmin zmax])】。

4、将这个语句添加到plot作图语句后面来设置,如图所示。

5、这样,就设定一个轴范围了,图形全部在坐标轴范围内,是x最小,xmax是x最大。

扩展资料

强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本参数就能得到所需图形,这类函数称为高层画图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层画图操作。

这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,能够通过句柄对该图形元素进行操作,而不影响其它部分。

在绘制图形时,Matlab能够自己主动依据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清楚的显示出来。所以,普通情况下用户不必选择坐标轴的刻度范围。可是,假设用户对坐标不惬意,能够利用axis函数对其又一次设定。

其调用格式为:

axis([xmin xmax ymin ymax zmin zmax])

假设仅仅给出前四个参数,则依照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。假设给出了所有参数,则绘制出三维图形。

axis函数的功能丰富,其常常使用的使用方法有:

axis equal :纵横坐标轴采用等长刻度

axis square:产生正方形坐标系(默觉得矩形)

axis auto:使用默认设置

axis off:取消坐标轴

axis on :显示坐标轴

还有:给坐标加网格线能够用grid命令来控制,grid on/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。

给坐标加边框用box命令控制。和grid一样使用方法

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式