首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MATLAB绘图放大区域中的数据导出到工作空间

将MATLAB绘图放大区域中的数据导出到工作空间
EN

Stack Overflow用户
提问于 2015-06-09 04:44:20
回答 1查看 688关注 0票数 1

我在MATLAB图形中有4-5个时间序列数据和散点图的子图,它们的x轴是相连的。数据相当长,我放大了figure.Now的一小部分,我只想将这个放大部分中包含的数据作为变量导出到工作空间中。有可能吗?

例如,下面是完整数据集的绘图。

下面是放大的部分,

现在我想导出所有的变量或变量的时间段,对应于上面放大的部分到工作区。

EN

回答 1

Stack Overflow用户

发布于 2015-06-09 07:29:03

在Ratbert的评论的基础上,让我们建立一个样例图来玩。

代码语言:javascript
复制
x = 1:10;
h.myfig = figure();
h.myaxes = axes('Parent', h.myfig);
h.myplot = plot(x);

我假设你有MATLAB R2014b或更新版本,也就是MATLAB switched graphics handles to objects。如果您有一个较旧的版本,您可以在适当的地方用getset调用替换我所有的点符号。

现在,对于这个初始图,如果我们输入h.myaxes.XLimget(h.myaxes, 'XLim'),我们将返回:

代码语言:javascript
复制
ans =

     1    10

现在,如果我们随意放大并进行相同的调用,我们会得到不同的结果。在我的例子中:

代码语言:javascript
复制
ans =

    3.7892    7.0657

现在,由您决定如何使用此信息来打开数据窗口。一种非常基本的方法是使用find来获得最接近这些限制的数据点的索引。

例如:

代码语言:javascript
复制
newlimits = h.myaxes.XLim;
newminidx = find(x >= floor(newlimits(1)), 1);
newmaxidx = find(x >= ceil(newlimits(2)), 1);

newmin = x(newminidx);
newmax = x(newmaxidx);

返回以下内容的[newmin, newmax]

代码语言:javascript
复制
ans =

     3     8

我在这里使用了floorceil,因为我知道我的数据是整数,您的标准可能不同,但过程是相同的。希望这足以让你入门。

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

https://stackoverflow.com/questions/30718742

复制
相关文章

相似问题

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