绘制多个数据matlab

时间:2014-10-30 10:25:27

标签: matlab plot

早上好,我的matlab情节有问题。

我已经生成了属于不同日期的数据样本;数据是人类的主要姿势(标有1,2,3,4)。

现在我有30个向量(每天一个),样本数等于当天的秒数(大约86400个样本......)。我每秒都有一个姿势。

我的目标是在一个月内绘制样本的分布,在X轴上我将得到月份的日期(1,2,3 ..... 30),在Y轴上我会得到小时(样本/ 3600我认为)。

如何在一个图表中绘制所有数据?我有两个主要问题:

  • 我有30个不同长度的向量(因为我已经生成了具有随机函数的样本)所以第一步是对我认为的数据进行整理,因为PLOT函数需要具有相同长度的向量...

  • 在同一个地块中绘制30天,以评估一个月内姿势的整体分布

一个小例子:day1 = [2222111333444] day2 = [22111333333444] day3 = [2221111133334444]。输入是姿势序列(一天的一个序列);现在我需要获得一个带有"垂直表示的情节"这些姿势(在x轴上是天,在y轴上是一天中的小时,每小时我有大约3600个样本 - 一个样本为第二个)。使用命令"抓住"没问题,但我不需要重叠数据,但我需要并排放置矢量数据

安德烈

1 个答案:

答案 0 :(得分:1)

它是这样的,但当然,如果你有30天和每秒一个条目,你需要使用矩阵并对各行进行求和。此外,您不需要使矢量大小相同,但每次都必须为x轴(天)使用不同的参数。

day1=[2 2 2 2 1 1 1 1 3 3 3 4 4 4]; 
day2=[2 2 1 1 1 3 3 3 3 3 4 4 4 4];
day3=[2 2 2 1 1 1 1 3 4 4 4 4 4 4];

Days=1:3;

LayingTime=[sum(day1==1),sum(day2==1),sum(day3==1)];
SittingTime=[sum(day1==2),sum(day2==2),sum(day3==2)];
StandingTime=[sum(day1==3),sum(day2==3),sum(day3==3)];
RockingTime=[sum(day1==4),sum(day2==4),sum(day3==4)];

plot(Days,LayingTime,Days,SittingTime,Days,StandingTime,Days,RockingTime)

xlabel('Day')
ylabel('Hours of Activity')
legend('Hours Laying','Hours Sitting','Hours Standing','Hours Rocking')

enter image description here