首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >压缩库存数据

压缩库存数据
EN

Stack Overflow用户
提问于 2009-11-17 07:37:57
回答 1查看 860关注 0票数 0

我有一个这样组成的数据集:

代码语言:javascript
复制
2009,11,01,17,00,23,1.471700,1.472000

2009,11,01,17,01,04,1.471600,1.471900

2009,11,01,17,01,09,1.471900,1.472100

2009,11,01,17,01,12,1.472000,1.472300

2009,11,01,17,01,13,1.471900,1.472200

2009,11,01,17,01,14,1.471600,1.471900

2009,11,01,17,01,18,1.471700,1.472000

2009,11,01,17,01,18,1.471900,1.472200

我正在使用Octave来操作这些数据。我想使用此节拍数据来创建包含5分钟、10分钟和30分钟间隔的数据的各种文件。使用这种格式,可以将它们绘制为条形图/烛台图,并执行进一步的计算。然而,我真的不知道如何处理数据循环来创建这样的文件。

我熟悉Octave并使用此软件,但此特定任务可以在其他软件中承担,以产生文件,稍后导入到Octave中。

我第一次尝试用Octave编写代码时出现了这个错误:

代码语言:javascript
复制
error: A(I,J,...) = X: dimensions mismatch
error: called from:
error:  /home/andrew/Documents/forex_convert/tick_to_min.m at line 105, column 25

生成它的代码是

代码语言:javascript
复制
[i,j]=find(fMM>=45 & fMM<50);

min_5_vec(1:length(i),1)=tick_data(min(i):max(i),1);   % line 105

代码检查“分钟”向量fMM,并且应该提取并创建一个新的"min_5_vec“向量,其中包含每小时在HH:45:00和HH:49:59之间发生的所有刻度数据。问题是,这段代码是函数的一部分,它似乎只在这一特定行上失败,我发现这一行非常奇怪,因为它被复制和粘贴,只有图45和50被更改,而函数代码的其他类似部分直到第105行都没有失败。我已经直观地检查了原始数据,看不出数据的性质是导致失败的原因。对失败的可能原因有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2009-11-25 21:02:33

首先,使用datenum将年、月、日、小时、分钟、秒变量转换为时间:

代码语言:javascript
复制
datenum(2009,11,01,17,00,23)

将返回自1/1/0000以来的天数。假设您将所有时间保存在一个名为time的向量中。现在,找到第一次/最后一次应该很容易:

代码语言:javascript
复制
first = min(times); 
last = max(times);

一分钟等于:

代码语言:javascript
复制
ONE_MINUTE = 1/24/60

现在,装箱的过程如下:

代码语言:javascript
复制
index = 1;
means = [];
for t = first:5*ONE_MINUTE:last
    current_bin = (times>=t) & (times<t+5*ONE_MINUTE)
    % do something with all the data for which current_bin==1
    means(index) = mean(data(current_bin));
    index = index+1;
end

仅作为示例,我计算了每个bin中数据的平均值。我假设你有一个叫做data的向量,它包含每个时间的一些数据。

(我知道这可以优化很多,但对于这个答案,我更喜欢清晰度而不是性能)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1745600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档