goo blog サービス終了のお知らせ 

Take3's blog

日々の記録などをこつこつ

Octave filter関数の動作

2015-01-14 06:23:56 | プログラミング関係

Octaveのsignalパッケージには、
butter関数やcheby2関数などデジタルフィルタを設計する機能が含まれていたが、どうもそこで得られるb,aをfilter関数で使用することはできるが、他で使用することができなかった。(知らなかっただけ)

Matlabのリファレンスのサイトでもなかなかどうなっているかなかなか見られない。

そのとき、以下のサイトの内容が便利であった
http://octave.sourceforge.net/octave/function/filter.html

filter関数をCなどで実装する場合に参考になる.


GNU Octave 3.8.2 datetickの不具合

2014-12-19 04:45:15 | プログラミング関係

<test_data.txt>
2014/12/19 04:42:40 1
2014/12/19 04:42:41 2
2014/12/19 04:42:42 3
2014/12/19 04:42:43 4
2014/12/19 04:42:44 5
2014/12/19 04:42:45 6
2014/12/19 04:42:46 7
2014/12/19 04:42:47 8
2014/12/19 04:42:48 9
2014/12/19 04:42:49 10
2014/12/19 04:42:50 11
2014/12/19 04:42:51 12
2014/12/19 04:42:52 13
2014/12/19 04:42:53 14
...

というファイルを開く。

fid = fopen('test_data.txt', 'r');
data = fscanf(fid, '%f/%f/%f %f:%f:%f\t%f', [7, Inf])';
fclose(fid);

date_ = datenum(data(:, 1:6));
plot(date_, data(:, 7));
datetick('x');

というプログラムを実行してプロットしてみると、階段状のプロットになる。

date_ = datenum(data(:, 1:6));
plot(rem(date_, 1), data(:, 7));
datetick('x');

なら何とかなる。


Java と C/C++などで%gの扱いが異なる

2014-06-11 06:21:31 | プログラミング関係

先頃Java でformatを使用した文字列の出力をするプログラムを作成していたら,%gの扱いが,C/C++などと異なることに気がついた。
C/C++などで書式で%.16gと設定してある場合 16桁を維持し得る最小のフォーマットを自動で選定してくれたが,Javaではそうはいかない。
どちらでも,16桁維持されることは確かであるが,若干書き出したファイルサイズが大きくなる。

別のやり方はJavaでもありそうなので探すことにする