使用具有不同尺寸的多个数据集的plotyy

时间:2015-09-14 14:31:31

标签: arrays matlab plot runtime-error dimensions

我想生成一个带有两个y轴的图,并将多个数据集应用到其中一个轴。例如

[hAx,hLine1,hLine2] = plotyy([x1',x2',x3'],[y1',y2',y3'],x4,y4);

其中x1y11000x1 - 数组,x2y22000x1 - 数组和x3以及y33000x1 - 数组。阵列的范围或多或少相同。当我尝试制作这个图时,MATLAB给我一个错误说

  

使用horzcat时出错连接的矩阵的维度不是   是一致的。

此错误是否有解决方法?

编辑: 这是我的真实代码,它不起作用:

[hAx,hLine1,hLine2] = plotyy([erg_cm.Time.data,erg_cm.Time.data,t',t'],...
    [erg_cm.Car_FxFL.data,erg_cm.Car_FxFR.data,Fx(1,:),Fx(2,:)],...
    erg_cm.Time.data,diff);

我原来的数据:

  • erg_cm.Time.data1x4001
  • t80300x1
  • erg_cm.Car_FxFL.data1x4001
  • erg_cm.Car_FxFR.data1x4001
  • Fx4x80300
  • diff1x4001

1 个答案:

答案 0 :(得分:1)

您的xy向量是列向量,并且您正在尝试水平连接它们,这是因为它们的大小不同而无法做到。你想垂直连接它们:

[hAx,hLine1,hLine2] = plotyy([x1;x2;x3],[y1;y2;y3],x4,y4);

编辑:这是我正在测试的

erg_cm.Time.data = rand(1, 4001);
t =  rand(80300, 1);
erg_cm.Car_FxFL.data = rand(1, 4001);
erg_cm.Car_FxFR.data = rand(1, 4001);
Fx = rand(4, 80300);
diff = rand(1, 4001);

[hAx,hLine1,hLine2] = plotyy([erg_cm.Time.data,erg_cm.Time.data,t',t'],...
    [erg_cm.Car_FxFL.data,erg_cm.Car_FxFR.data,Fx(1,:),Fx(2,:)],...
    erg_cm.Time.data,diff);