计算文件

时间:2013-01-10 19:25:24

标签: c matlab

Day              price1          price2

2/2/2000         10                15

3/2/2000         12                18

4/2/2000         14                19

对于每个值(价格1和价格2),我想为每列计算不同的= now-past(line2-line1)。

为了使这个是正确的,使用表,任何一个例子?

我有什么

file = xlsread('example.xls');

y = length(price);

for i=1:y;
  difprice1 = line(i+1)-line(i)
  difprice2 = line(i+1)-line(i)

end

2 个答案:

答案 0 :(得分:0)

类似的东西:

for i = 1:length(price1)-1
    Diff(i,1) = price1(i+1)-price1(i);
    Diff(i,2) = price2(i+1)-price2(i);
end

or more efficiently:

Diff(:,1) = price1(2:end)-price1(1:end-1);
Diff(:,2) = price2(2:end)-price2(1:end-1);
....
Diff(:,N) = priceN(2:end)-priceN(1:end-1);
当然,价格向量都必须具有相同的长度。

答案 1 :(得分:0)

如果您的价格存储在m x n矩阵A中且连续m天和n个不同的产品/价格,您可以获得日常更改只需A(2:end, :) - A(1:end-1, :)

此计算采用所有“次日”价格的矩阵,并逐个元素地减去所有“今天”价格的矩阵,从而导致所有价格在整个时间窗口内发生变化。

A = xlsread('example.xls');
dA = A(2:end, :) - A(1:end-1, :)

现在dA(:, 2:end)包含您要求的所有数字。