首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在matlab中可视化地绘制无穷大的值

在matlab中可视化地绘制无穷大的值
EN

Stack Overflow用户
提问于 2018-02-21 17:38:05
回答 3查看 2.2K关注 0票数 4

我试着重现狄拉克-德尔塔函数:

我的代码:

代码语言:javascript
运行
复制
x = -30:1:30;
y = zeros(1,numel(x)); %sets all values initially to zero
y(x==0)= inf; % the point corresponding to x=0 is set to inf
plot(x,y,'d')
axis([-40 40 0 inf])

我的代码生成:

EN

回答 3

Stack Overflow用户

发布于 2018-02-21 18:00:02

您可以使用stem完成此操作,将其'Marker'指定为向上箭头...

代码语言:javascript
运行
复制
% Open figure
figure;
% Blue stem plot at x=0, to y=75. Marker style is up arrow
stem(0, 75,'color','b','linewidth',2,'marker','^')
% Add infinity label at x=0, y = 82 = 75 + fontsize/2, where we plotted up to 75
text(0,82,'∞','FontSize',14)
% Set axes limits
xlim([-40,40])
ylim([0,90])

您可以看到output plot here,但请参阅下面的编辑以获得改进的版本。

注意,当然,您应该选择一个相对于绘图上的任何其他数据都较大的y值。在本例中,我选择了75来大致匹配您想要的示例图。MATLAB不能绘制inf的值,因为无穷大在y轴上的什么位置?

编辑:您可以按照Marco在评论中的建议,使用额外的'≈'字符指示y轴断开。将xlimylim组合到一个axis调用中,并更改y轴刻度以帮助指示轴中断,我们将获得以下结果:

代码语言:javascript
运行
复制
stem(0, 80,'color','b','linewidth',2,'marker','^')
text([-42,0,38], [80,87,80], {'≈','∞','≈'}, 'Fontsize', 14)
axis([-40, 40, 0, 100])
yticks(0:20:60)

票数 10
EN

Stack Overflow用户

发布于 2018-02-21 17:47:49

要显示无穷大,不应将y设置为无穷大。为此,可以将y设置为与轴值成比例的较大值。例如,如果axis类似于[min_x max_x min_y max_y],则可以设置y(x==0) = max_y*10

在您的情况下,您将拥有:

代码语言:javascript
运行
复制
x = -30:1:30; min_x = min(x) - 10; max_x = max(x) + 10;
y = zeros(1,numel(x)); 
% compute values of y here
% ...
min_y = min(y) - 10; max_y = max(y) + 10;
y(x==0)= 10 * max_y; 
plot(x,y,'d');
axis([min_x max_x min_y max_y]);
票数 3
EN

Stack Overflow用户

发布于 2019-01-25 16:56:15

在Matlab绘图中使用tick属性,如下所述

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48902508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档