【发布时间】:2014-09-13 17:34:30
【问题描述】:
我有很多包含两列的文本文件,例如:
1998-08 56
1998-09 78
1998-10 12
1998-11 76
我有一个 MATLAB 代码,我想用 octave 运行它。此代码生成一个随机矩阵 (c),然后计算泊松逆,现在我想告诉它获取文本文件的第二列作为 c 的值,而不是随机矩阵。 然后一旦我计算出来,我想将结果绘制在一个图表中,第一列的日期作为 x 轴的值。 我的问题很天真,但我对 octave 非常陌生,我昨晚花了很多时间搜索文档,但没有发现任何有用的东西。
clc
clear all
#here I need to read in input the second columns of each file
C = [8,9,3,6,4,1,5,8,3,5,8,10,5,3,1,5,11,3,6,5,8,5,1,3,5,3,3,7,0,2,6,7,1,8,3,5,2,6,3,5,3,8,2,5,2,7,4,4,5,50,7,5,3,3,8,2,7,7,3,6,4,4,2,4,5,1,5,14,2,6,1,4,7,3,4,6,1,3,4,4,5,1,5,4,4,6,6,2,0,4,8,9,4,5,10,3,4,2,3,6,6,8,5,5,8,3,8,4,5,4,1,4,6,5,2,5,5,7,5,1,5,4,5,3,5,11,8,6,6,0,6,4,6,5,6,4,6,4,11,4,6,5,4,4,4,2,4,7,4,40,7,7,3,1,6,7,7,4,10,5,5,4,8,5,4,5,2,7,8,6,7,6,4,3,3,3,4,6,1,7,2,6,5,7,3,6,3,6,2,3,4,7,2,4,3,6,4,7,9,5,6,2,4,4,7,4,6,3,5,3,3,5,4,8,5,3,6,4,8,6,3,8,2,7,5,3,3,8,8,4,4,8,5,7,4,4,3,6,8,4,3,4,3,9,4,3,10,4,4,5];
C = C';
N = length(C);
H = 6;
w = [1:H H+1 H:-1:1]';
Lambda_Tilde = NaN * zeros(N, 1);
L_Tilde = NaN * zeros(N, 1);
U_Tilde = NaN * zeros(N, 1);
for t = (H+1):(N-H-1)
Lambda_Tilde(t) = sum(w .* C(t-H:t+H)) / sum(w);
L_Tilde(t) = poissinv(0.005, Lambda_Tilde(t));
U_Tilde(t) = poissinv(0.995, Lambda_Tilde(t));
end
clf
plot(1:N, C, 'bo-');
hold on
plot(1:N, L_Tilde, 'r-.');
plot(1:N, U_Tilde, 'r-.');
【问题讨论】:
-
您的代码与此问题无关,您尝试过import your data 什么?那里确实有很多很好的文档,因此很难相信“发现没有任何用处”。尤其是
csvread和importdata对你来说可能很有趣。或者告诉我们您的尝试有什么问题。 -
@thewaywalk 这正是重点。这是我在随机矩阵上的代码,我已经弄清楚我的公式是如何工作的,但我无法导入我的数据以使其在我的而不是随机矩阵上工作!现在我检查导入数据链接!谢谢。