2015-11-19 135 views
0

我有多天的电压和电流信号。时间向量以一秒为单位(SOD),电压和电流矢量分别以伏特和安培表示。但是,每天的矢量数据长度不同。例如星期一的数据对于时间和电压/电流都可能是1x100000,而对于时间和电压/电流,星期二的数据可能是1x50000。为了进行比较,我被要求在同一幅图上绘制不同日期的数据。我尝试过使用plot(x1,y1,x2,y2)方法,但由于矢量长度不同,显然无法使用。我尝试插入到更大的数据集,但后来意识到我将得到所有NaNs的结果,因为没有时间上的重叠。我用尽了想法,迫切需要帮助。在MATLAB中绘制多个数据集

编辑: 我想我忘了提,不知怎的,我想它们叠加一个在同一图中其他的顶部,而不是使用一个插曲。

+0

“这显然不因工作不同的矢量长度“;真?如果'x1'和'y1'都来自同一天,它们应该具有相同数量的时间和电压/电流。只有该元素数量需要匹配。 ('x2','y2')的元素数与('x1','y1')对无关。 – TroyHaskin

+0

让我纠正自己。它的工作,但是,数据不排队。后一天的数据明显向右移动。我想要做的是对齐他们... – DeeTee

+1

哎呀。两个'x'-数据都能够线性转换为'0'吗?即,plot(x1-x1(1),y1,x2-x2(1),y2)'。 – TroyHaskin

回答

1

它听起来好像要长度n的数据矢量跨越,我猜24小时= 86400秒,对于任何n(例如n=100000n=50000)。假设原始数据均匀采样,这应该做的伎俩:

x1=linspace(0,86400,length(x1)); 
x2=linspace(0,86400,length(x2)); 
plot(x1,y1,'r-',x2,y2,'b-'); 

如果不是均匀采样,我们仍然可以让它工作:

t1=linspace(0,86400,length(x1)); 
t2=linspace(0,86400,length(x2)); 
newy1 = spline(x1,y1,t1); 
newy2 = spline(x2,y2,t2); 
plot(t1,newy1,'r-',t2,newy2,'b-');