2010年1月27日水曜日

SyntaxHighlighter に貼り付けるコードのエスケープ

このブログでは SyntaxHighlighter を使ってソースコードを表示していますが,コードを<pre>タグの中に描くときに '<' や '>' などを&gt; &lt; などにエスケープする必要があります.

これを手でやると面倒なのでスクリプトを書いてみました.
http://maru.bonyari.jp/code2html/code2html.html
処理はブラウザの JavaScript で処理されるので prototype.js があれば
ローカルに保存しても使えます.

MATLAB で半透明の plot を作る

データが大量にあって,グラフ上で密度を表現したい場合などで
MATLAB で半透明の線を書きたいことがたまにあります.

なぜかMATLABのplotで生成される線は半透明をサポートしていないので
半透明をサポートしているpatchで線を描く関数を作ってみました.

function [ p ] = pplot(x,y,z)
%PPLOT Draw line as patch

if nargin==2
    z=0;
end

x=reshape(x,[],1);
y=reshape(y,[],1);

p=patch([x;flipud(x)],[y;flipud(y)],z*ones(2*size(x,1),1),'b');

end

使うときは以下のように使います.
x=0:1e-2:pi/2;
clf
hold on
for k=linspace(0,1,25)
    p=pplot(x,(1-k)*sin(x));
    set(p,'EdgeAlpha',0.1);
    set(p,'EdgeColor','b');
    set(p,'LineWidth',2);
    p=pplot(x,k*cos(x));
    set(p,'EdgeAlpha',0.1);
    set(p,'EdgeColor','r');
    set(p,'LineWidth',2);
end
得られる結果はこんな感じ
このように,半透明の線を描くことができ,線が集中している部分は濃い色で表示されます.
ただし,複雑な線を大量にプロットするとすごく遅いので注意してください.

2009年12月12日土曜日

カメラを買ってみた


携帯のカメラが壊れたのでデジカメを買ってみました.
いろいろ設定を変えて撮ったり画像処理で調整したりして遊んでいますが,
同じ景色でも肉眼で見るのとは違う印象になっていて,おもしろいです.
意外と星が撮れることに特に驚いています.

2009年8月29日土曜日

Springer Exemplar

最近,英語で文章書くときに Springer Exemplar というサービスを使ってます.

このサービスは学術系の本でよく見る Springer 社の無料サービスで
指定した単語,または節が使われている例文を,同社が出版してる文献から検索して
列挙してくれるサービスです.

実は一時期似たようなのを自分で作って使っていたのですが,やっぱり大手が作ると
元のデータの量が多くて良いです.

気になった点は

  • 結果のソート順の基準がよくわからない.
  • 遅い

といったところですね.
あと,検索した後に左の方に分野・国ごとのヒット数がでているようですが,こちらも興味深いです.やっぱり日本人は良く "on the other hand" って使うんですね.

2009年8月24日月曜日

プレゼンテーション・ディレクターの設定

「プレゼンテーション・ディレクター」はThinkpad についているソフトで
プレゼンテーション用のディスプレイ設定(スクリーンセーバーオフとか通知機能オフとか)と
通常の設定をワンタッチで切り替えられる,そこそこ便利なソフトです.

ですが,このソフトには致命的な不具合があって僕が使ってるThinkpadの画面解像度1440x900をサポートしていません.
正直言って添付ソフトでこれはマズイような気もしますが,とりあえずの対処法を見つけたのでメモしておきます.

  1. 「メニューの設定」を開き,オプションボタンを押す
  2. 「スキームのエクスポート」で設定をエクスポートする
  3. テキストエディタでエクスポートしたファイルを開き,
    Width=1024
    Height=768
    の行を
    Width=1440
    Height=900
    とか書き換えて保存する
  4. 編集したファイルを「スキームのインポート」でインポートする

これで一通り使えるようになりますが,「通常のディスプレイ設定」の項目だけはこの方法を使っても修正できません.早いうちにアップデートで修正されるといいのですが・・・

2009年7月27日月曜日

論理インデックス

最近「論理インデックス(logical indexing)」というMATLABの便利機能に気づきました.
こんなふうに使います.

>> a=[1,2,3,4]
a =
    1 2 3 4
>> a(a>2)
ans =
    3 4
>>

配列のある条件を満たす部分だけ抽出する時に便利です.
通常のインデックス a(find(a>2))とかよりも高速に処理されるらしいです.

2009年6月21日日曜日

TeXclip を更新

この記事の情報は古いです
TeXclipで作成した数式の再編集については


を参照してください.