※ ここでは Book1.csv をダウンロードし,分かりやすいディレクトリに置く
(参考: 「外国為替データ(時系列データ)の情報源の紹介」の Web ページ)
以下の説明では、
として説明を続ける.
属性名として seq, date, USD, EUR, AUD の5つが, CSV ファイルの1行目に書かれていることを確認する.
◆ コマンドの例
echo '"seq", "date", "USD", "EUR", "AUD"' > Book1.csv awk '{print NR, ",", $0}' hoge.csv >> Book1.csv
octave
次のコマンドを実行.
pkg load io
Octave で次のコマンドを実行
◆ Windows の場合のOctaveコマンドの例
A = dlmread( "C:\\octave\\Book1.csv", ",/", 1, 0 );
◆ Linux の場合のOctaveコマンドの例
A = dlmread( "/tmp/Book1.csv", ",/", 1, 0 );
例えば,次のコマンドを実行する.これは,Aの2行目と3行目と4行目と5行目と6行目と7行目である.
例えば、A の 5 列目を表示してみる
A(:,5)
◆ A の 5 列目の reshape の例
n 要素ごとに平均 (mean) を求める
n = 7 m = fix( size(A)(1) / n ) S = mean( reshape( A([1:(n * m)],5), n, size(A)(1) / n ) ) plot(S)
先ほどの結果では、長さが m になる. 長さを n * m に伸ばす.
n = 7 m = fix( size(A)(1) / n ) S = mean( reshape( A([1:(n * m)],5), n, size(A)(1) / n ) ) T = S; for i = [2:n] T = [T; S]; end plot( reshape(T, n * m, 1) )
関数化する
function retval = vecmean(A, x, n) m = fix( size(A)(1) / n ); S = mean( reshape( A([1:(n * m)],x), n, size(A)(1) / n ) ); T = S; for i = [2:n] T = [T; S]; end retval = reshape(T, n * m, 1); endfunction hold on plot( vecmean(A, 5, 2) ); plot( vecmean(A, 5, 8) ); plot( vecmean(A, 5, 30) ); plot( vecmean(A, 5, 60) );
x = [zeros(1,20), ones(1,10), zeros(1,20)] pkg load signal plot([1:50], x, [1:50], filtfilt([1 1 1 1 1]/5, 1, x))
x = [zeros(1,20), ones(1,10), zeros(1,20)] pkg load signal plot([1:50], x, [1:50], sgoleyfilt(x), [1:50], filtfilt([1 1 1 1 1]/5, 1, x))
x = [zeros(1,20), ones(1,10), zeros(1,20)] pkg load signal plot([1:50], x, [1:50], spencer(x), [1:50], filtfilt([1 1 1 1 1]/5, 1, x))
pkg load signal plot(A(:,1), A(:,5), A(:,1), filtfilt(ones(1,20)/20, 1, A(:,5)))
次の関数を使う
plot( X[,c("seq")], X[,c("USD")] ) lines(lowess( X[,c("seq")], X[,c("USD")] ), col = "red") lines(lowess( X[,c("seq")], X[,c("USD")], f=0.2 ), col = "green") legend( 5, 105, c( "f = 2/3", "f = 0.2" ), lty = 1, col = c("red", "green") )
テキストを書くこともできる.
text(locator(1), labels = "ほげほげ")
グラフィカル・デバイスの種類(例)
など.
例えば,PDF ファイルを作りたいときは,最初に「pdf()」を実行.最後に「dev.off()」で,ファイルを閉じる. すると,作業ディレクトリにファイルができる.作業ディレクトリは,getwd() で分かる.
※ pdf( file="C:\1.png" ) のように,ファイル名を陽に指定する方が分かりやすいでしょう.