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

下面是放大的部分,

现在我想导出所有的变量或变量的时间段,对应于上面放大的部分到工作区。
发布于 2015-06-09 07:29:03
在Ratbert的评论的基础上,让我们建立一个样例图来玩。
x = 1:10;
h.myfig = figure();
h.myaxes = axes('Parent', h.myfig);
h.myplot = plot(x);我假设你有MATLAB R2014b或更新版本,也就是MATLAB switched graphics handles to objects。如果您有一个较旧的版本,您可以在适当的地方用get和set调用替换我所有的点符号。
现在,对于这个初始图,如果我们输入h.myaxes.XLim或get(h.myaxes, 'XLim'),我们将返回:
ans =
1 10现在,如果我们随意放大并进行相同的调用,我们会得到不同的结果。在我的例子中:
ans =
3.7892 7.0657现在,由您决定如何使用此信息来打开数据窗口。一种非常基本的方法是使用find来获得最接近这些限制的数据点的索引。
例如:
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]:
ans =
3 8我在这里使用了floor和ceil,因为我知道我的数据是整数,您的标准可能不同,但过程是相同的。希望这足以让你入门。
https://stackoverflow.com/questions/30718742
复制相似问题