なかのにっき

最新版はこちら。 突っ込みは各日付の BBS エントリのほか、 メール (nakano@st.seikei.ac.jp) や フォーム からどうぞ。 なおスパム除けのため、BBS 機能には 緩い認証を入れて います。 検索エンジンから来た方は、エンジンの方のキャッシュを見るか、 下の簡易検索を試してみてください。


hns - 日記自動生成システム - Version 2.19.5

先月 2002年12月 来月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2002年12月07日() [n年日記]

#1 [labo] MgO フィッティング用プログラム (1)

作業場は ~/project/MgOfit/ 以下。 とりあえず理論式のサブルーチンに手を入れた。 他のとこに取り掛かっているのだが、 あらゆるデータが common ブロックで受け渡しされててわけわかめ。 自分で書き直したほうが早いかな。

つうか Savitzky-Golay かけて間引きするとこまでは 明らかに octave で書いたほうがいいな。そうしよっと。

sgolayfilt:

sourceforge の Octave Repository にある。debian だと octave-forge を入れれば使える。

入力データ前処理:

measured date    :  5: 9 PM 11/21/ 2
data title       : %T   T ALL RANGE  
operating mode   :     spectrum scan
system responce  :            medium
bandpass(nm)     :           2.0(nm)
UV-VIS change WL :         340.0(nm)
baseline         :            system
Lamp chg control :              auto
Higher bound WL  :         900.0(nm)
Lower  bound WL  :         185.0(nm)
scan speed       :         120.0(nm/s)

wavelength(nm), Intensity ratio
       900.000,       0.8973543
       899.600,       0.9003937
        :
       185.200,       0.0121768
[EOF]
というようなデータファイル (DOS 形式) を
#!/usr/bin/perl

while(<>){/^wavelength/ && last; }

while(<>){
	chomp;
	s/\r//;
	(my $wltmp, $trtmp) = split /,/;
	unshift @wl, $wltmp;
	unshift @tr, $trtmp;
}

printf "%d\n", scalar(@wl);

while(@wl){
	printf "%20f%20f\n", pop(@wl), pop(@tr);
}
という perl script (chop.pl) を通し、さらに
#!/usr/bin/octave -qf

LOADPATH=":/usr/share/octave//";

n = scanf("%d", "C");
for i = 1:n
	[wl(i) tr(i)] = scanf("%f%f", "C");
endfor

sr = sgolayfilt(tr, 5, 7);

nout = 0;
for i = 1:n
	# [400nm, 800nm], 2nm step
	if (ceil( wl(i) / 2) * 2 == wl(i) && wl(i) <= 800 && wl(i) >= 400)
		nout += 1;
	endif
endfor
printf("%5d\n", nout);

for i = 1:n
	if (ceil( wl(i) / 2) * 2 == wl(i) && wl(i) <= 800 && wl(i) >= 400)
		printf("%20f%20f\n", wl(i), sr(i));
	endif
endfor
という octave script (prefit.m) を通して出来上がり。 出力行カウントに 2 回ループをまわしてるのがマヌケだが、まあいいや。 こいつを fortran プログラムに食わせれば良いだろう。

なお octave-forge のスクリプトを使うときは LOADPATH 指定が必要。 の 2 点がミソ ( このへん 参照)。

#2 [linux] astyle

というものがあると mhatta さんに教えていただく。
なるほど indent よりはかなり良さそうだ。つうか死ネ > GNU style

#3 散髪

した。

#4 ライオン国分寺店

最近南口の坂の途中、「せもりな」の隣にできたラーメン屋。 散髪帰りにラーメンを食ってきた。 醤油ベースでちょっと濁り+こってり、やや酸味を感じるスープ。 ネギを散らしてある。チャーシュー、メンマ、海苔。 ややチャーシューが厚かったかも。 麺は中太でツルツル感が高く美味しい。 隣の人が食ってた餃子も美味そうだった。

#5 K-1

しまったホースト×サップ戦見逃したよ。
コメント [全部読む/投稿する]

以上、1 日分です。
タイトル一覧
カテゴリ分類
book
dept
issp
labo
paper
snap
stock
vsj
Powered by hns-2.19.5, HyperNikkiSystem Project

中野武雄 (NAKANO, Takeo) <nakano@st.seikei.ac.jp> Since 1999-10-07
RSS feed, 更新時刻, LIRS エントリ, アクセス制御 (解説)

中野のホームページへ