2015-11-19 3 views
0

У меня есть сигналы напряжения и тока от нескольких дней. Вектор времени находится в секундах дня (SOD), а векторы напряжения и тока находятся в вольтах и ​​усилителях соответственно. Однако векторные данные с каждого дня различаются по длине. Например, данные понедельника могут быть 1x100000 для времени и напряжения/тока, а по вторникам может быть 1x50000 для времени и напряжения/тока. Меня попросили рассказать о разных днях данных на том же рисунке для целей сравнения. Я попытался использовать метод plot(x1,y1,x2,y2), но это явно не сработало из-за разных длин векторов. Я попробовал интерполировать в более широкий набор данных, но потом понял, что получим все NaNs на результат, так как во времени нет перекрытия. У меня кончились идеи и я отчаянно нуждаюсь в помощи.Построение нескольких наборов данных в MATLAB

EDIT: Я предполагаю, что я забыл упомянуть, что-то я хотел бы, чтобы наложить их друг на друге в одной и той же фигуры и не используя сюжетные.

+0

«, что, очевидно, не работает из-за разные длины векторов "; действительно? Если 'x1' и' y1' совпадают с тем же днем, они должны иметь одинаковое количество элементов времени и напряжения/тока. Только этот счетчик элементов должен соответствовать. Количество элементов ('x2',' y2') не имеет значения для пары ('x1',' y1'). – TroyHaskin

+0

Позвольте мне исправить себя. Однако он работал, однако данные не были выстроены. Данные последнего дня, очевидно, были сдвинуты вправо. То, что я хотел бы сделать, это выровнять их ... – DeeTee

+1

Gotcha. Ли линейный сдвиг в '0' для обоих' x'-данных достаточно? А именно, «график (x1 - x1 (1), y1, x2 - x2 (1), y2)». – TroyHaskin

ответ

1

Это звучит, как вы хотите, вектор данных длины n, чтобы охватить, я предполагаю, что, 24 часа = 86400 секунд для любого n (например n=100000 или n=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-');