Matlab平均每天的客户数量

时间:2018-01-18 09:57:49

标签: matlab

我在创建一个24小时购物中心内平均人数的图表时遇到了问题。我在电子表格中有两列数据,包括客户进入(银行时间)和离开时间(停机时间)。数据跨越了几年,采用日期时间格式(dd-mm-yyyy hh:mm:ss)。

我想将数据的图形与时间作为x轴,平均人数作为y轴。因此,该图表将显示当天内部的平均人数。

出现问题是因为这个地方24小时开放,数据的时间跨度为数年。客户银泰也是工作时间可能在不同的日子。

示例:

intime 2.1.2017 21:50

outtime 3.1.2017 8:31

知道如何使用Matlab轻松显示数据吗? 多久没有任何进展......

2 个答案:

答案 0 :(得分:0)

好像你需要决定白天在店里定义客户的定义,足够1分钟?是否有最短时间长度,您不希望将其视为访问?

在前一种情况下,您根本不应该关注这些时间,如果进入和退出是在同一天,则只计为1个条目,如果不是,则将其计为2个不同的条目。

自从我在matlab中积极编码以来已经过了几年,我没有一个方便的IDE,但如果你添加到目前为止的代码,我可以为你修复它。

答案 1 :(得分:0)

我认为你需要首先在给定时间绘制综合体中人的原始数量。一旦可视化,它可以帮助您确定如何定义"平均每天的人数"以及如何计算它。这是指在给定时间内的平均值还是总数" ins"每天?防爆。一天有100人进入大楼......但平均而言,在一定时间内,大楼只有5人。哪个统计更重要?也许你想要两个。

这是一个如何在任何给定时间获得#人的原始情节的示例。我模拟了你的in&用随机数输出时间。

inTime  = cumsum(rand(100,1));  %They show up randomly
outTime = inTime + rand(100,1) + 0.25;  % Stay for 0.25 to 1.25 hrs

inCount  = ones(size(inTime));  %Add one for each entry
outCount = ones(size(outTime))*-1; %Subtract one for each exit.

allTime  = [inTime; outTime]; %Stick them together.
allCount = [inCount; outCount];

[allTime, idx] = sort(allTime);%Sort the timestamps
allCount = allCount(idx); %Sort counts by the timestamps
allCount = cumsum(allCount); %total at any given time.

plot(allTime,allCount);%total at any given time.

请注意,x值不是均匀间隔的。

如果您决定每天对总客户更感兴趣,那么您可以在给定时间范围内(每天)找到intTimes&可能只是一起忽略outTimes。