【问题标题】:The most effective way to use interp1 command in matlab with two columns在matlab中使用interp1命令的最有效方法有两列
【发布时间】:2012-06-07 00:16:48
【问题描述】:

我有两列(相同大小)必须在 Matlab 中进行插值。第一列是以小时为单位的时间向量(9.5、9.6 9.73 10.13 等),另一列是与“以小时为单位的时间”列的每个元素相关联的股票价格。

我希望在我的价格向量中缺少与每 15 分钟、30 分钟、45 分钟和 1 小时(60 分钟)相关的一些价格。因此,我的每小时时间列中也缺少这些元素(15、30、45 分钟和 60 分钟)。

如何线性插值两列以具有相同的大小,然后能够关联每 15 分钟(X.25 小时、X.5 小时、X.75 小时和 X 小时)的价格?

谢谢!

【问题讨论】:

  • 请注意,线性插值不是因果关系。为了填补缺失的点,它使用来自未来的信息。

标签: matlab interpolation


【解决方案1】:

这是一个单行命令:

interp_prices = interp1(time, prices, 0:0.25:max(time));

【讨论】:

  • 啊太棒了!你知道我是否可以在白天运行 interp1 命令吗?我的意思是,除了我的专栏时间和价格之外,我还有几天,我不想在几天之间插值……也就是说,在 16.5 小时(从午夜开始计算)到 9 小时(上午)之间。再次感谢!
  • 为此,我建议将您想要的天数乘以 7.5,并将其放在 0:0.25:___ 的末尾。然后将得到的插值结果按 7.5 小时分割。
  • 谢谢!好主意,或者我可以简单地运行 interp1 然后删除适合我不想要的时间之间的行。我希望有一种更快的方法,因为我已经在处理 2000 万个观察结果,并且我想避免创建更多数据然后再删除一个步骤。再次感谢安萨里!
  • 不,您不想删除非工作时间之间的行,因为您希望插值从一天下午 4:30 跳到第二天上午 9 点 - 您根本不想要在两者之间的时间点进行插值。不客气:)
猜你喜欢
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2013-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多