2010年10月14日木曜日

MATLAB(R14SP3)をWindows7x64で走らせる

古いバージョンのmatlab(R14SP3)をWinodows7(x64Pro)で走らせようとすると、
Splash画面(MATLABロゴのついた起動Window)が出たまま、ハングしてしまう。
これについて、プログラム起動の互換性をいじったり、JAVAのバーションを変えたりしても何も改善しない(JAVAのバージョンを変えると"C++RuntimeError"というのが出るけど、結局起動できない)。

2,3日途方に暮れていたのですが、とうとうfixしました。
ネタ元はこちらです、
http://www.mathworks.de/matlabcentral/newsreader/view_thread/243603

以下抜粋、
------
MATLAB 7.1 (R14SP3) is not supported on Windows Vista.
However, this issue might be the result of a conflict with the other version(s) of MATLAB installed on your system.

To work around this issue:

1. End any hung MATLAB process
2. Create an empty directory with the name R14SP3 in the existing $APPDATA\MathWorks\MATLAB directory where $APPDATA is typically of the form "C:\Users\$USERNAME\AppData\Roaming\"
3. Restart MATLAB."

Good luck!
------

いやーこれでうまくいきました。
感涙モノです。


あと、Windows7でmatlabR14SP3をインストールして、起動したり、インストールフォルダをいじったり(JAVAのバージョンを変えるなど)しようとすると、管理者権限がないだの言われてしまいます。
この場合は、F8を押しながら再起動してセーフモードで作業を行うとストレス無く作業できます。
(しかも一回セーフモードで起動すると、matlab7.1のアイコンに付いていた”管理下マーク”みたいなものが消えた)


それにしても、このご時世でもR7.1以前のmatlab起動したがっている人って世の中に結構いるんですね。。。
安心しました。

2010年2月6日土曜日

BMIもどき


趣味で、「筋電図で動くラジコンカー」なるものを作ってみました。
腕の屈筋と伸筋の筋電図を測定して、その活動のバランスで右にいったり左にいったりします。

内容的には全く珍しくないし、研究とも直接関係ないんですけど、
アンプを自作したり、NIのボードとか高価なものは使わず自前のノートPCのUSBポートだけで手軽にDA/AD制御してみたり、変なところにこだわってみました。
おかげで今まで知識として知っていた生体信号処理をより直感的につかめた気がします。
ハードウェアの理解も深まったし。
なんだか戦闘値がアップしたって感じです。

自分の研究には直接的なプラスはないんですけど。。。


あくまで趣味なんで、全部自腹ですし、研究費は一切使っていませんのでご心配なく。

2010年2月1日月曜日

MATLABの動きを快適にする方法

(注 下に挙げている方法を試される場合は、自己責任でお願いします。)


「Boot.iniの3Gスイッチを使う」
昔の記事(「メモリー」2007年12月14日)にも書いたのですが、
MATLABでLFPやEMGなど長めのアナログデータを解析していると、メモリ不足のエラーが生じることがあります。
??? エラー ==> xxx
メモリが足りません.HELP MEMORYとタイプしてオプションを確認してください
言われた通りHELP MEMORYとタイプしてみると、仮想メモリを増やすように言われるのですが、仮想メモリを増やしてみても大抵の場合何も改善しない。なんでかというと、Windows X
Pではアプリケーションで使えるメモリは2Gに制限されていて、いくら仮想メモリを増やしたとしてもOSがアプリケーション用にそれらを使ってくれないってところに原因があるようです。

Windowsは、この2G制限をはずす方法を用意してくれています。
(参考URL)「Windows XP および Windows Server 2003 の Boot.ini ファイルで使用可能なスイッチ オプション」(
http://support.microsoft.com/kb/833721/ja

1. [マイ コンピュータ] アイコンを右クリックし、[プロパティ] をクリック
2. [詳細設定] ->[起動と回復] -> [設定] をクリック
3. [起動システム] の [編集] をクリック
4. [operating systems]セクションの最後に「 /3GB」を追加する
5. 上書き保存して、再起動をかける。

これでMATLABを含めたアプリケーションが使えるメモリが大幅に増加して、メモリのエラーが起こりづらくなります。
私の場合、このスイッチを入れて以降、メモリのエラーにほとんど遭遇しなくなりました。




「マルチコア対応に設定する」(R2007a以降、マルチコアPCのみ)
MATLABのデフォルト設定ではマルチスレッド計算は無効になっているため、CPUをマルチコアに変えるだけだとシングルスレッドとして扱われて演算は早くならない。
マルチコアの利点(処理の高速化)を生かすには以下の設定が必要。
(参考URl)「1090 MATLABは、マルチプロセッサ/マルチコア対応のマシン上で動作しますか?」(
http://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1090)


1. [ファイル] -> [設定]-> [一般] -> [マルチスレッディング] を選択。
2. [マルチスレッド計算を有効にする]をチェック。
3. [計算スレッドの最大数] を指定(「自動」のほうでOK)。

これで、マルチスレッド計算が有効になっているため、演算処理が速くなる、はず。
(実は、速くなった実感があまりないんですけど、速くなっているんでしょう。。。)

2010年1月29日金曜日

リモートデスクトップ経由でmatlabを起動する

R14sp3までのmatlabをリモートデスクトップ経由で起動しようとすると、
License Manager Error -103.
というエラーが生じて起動できない。

これを解決する方法として、matlabをNT互換モードで起動するという方法を発見(WinXP)。

デスクトップなどのショートカットからmatlabを起動している場合は、ショートカットを右クリック→プロパティ→互換性タブを選択、
「互換モードでこのプログラムを実行する。」をチェックして、「Windows NT 4.0 (Service Pack 5)」を選択し、OKする。

すると、あら不思議。今までの苦労が嘘のように、matlabが起動できます。