R/MATLAB
ノルムの正規化などをする際に,行列Xの行や列単位で定数倍したい時がありますが,MATLABでどう書くのが一番早いかを測定したので,メモ. 実験コード N = 3000; D = 1000; A = rand(D,N); B = (1:N); %% 実装1 for i = 1:100 x = bsxfun(@times, A, B); end…
トランジスタ技術(2012/8)のKinect特集でM系列符号が使われていて、面白そうなので、MATLABで実装してみた。 コード %% M系列符号 clear; N = 3; M = 5; R = randi([0 1], M,1); nP = 2^M-1; B = zeros(nP*30, 1); % 生成 for iP = 1:nP*30 R = [xor(R(N),R(…
回帰の問題などでは(X'X)^-1をよく使う。 Xが横長であるときX'Xが非常に大きな行列になるので、 逆行列を求めるのが大変で高速化が重要になる。そこで、Woodbury行列反転公式(Woodbury matrix inversion formula) (A+BCD)^-1 = A^-1 - A^-1 B(C^-1+DA^-1 B)^…
MACのMATLABで mex -O hogehoge.cpp とやると, error: stdio.h: No such file or directoryが出力され,対処に思いの外,時間がかかったので,メモ. 対処法 /Applications/MATLAB_R2011a_Student.app/bin/gccopts.shの CC='gcc-4.2' SDKROOT='/Developer/S…
MATLABでJETの画像とカラー画像を重ねた画像をよく見るのだが, どう作ればいいのか分からなかったので,調べたついでにメモ. % 準備 clear; close all; img = im2double(imread('gundam.jpg')); img = imresize(img, 0.1); gimg = rgb2gray(img); h = fspe…
MATLABでeigの速度がどの程度なのか少し気になっていたので, 適当に時間を計測してみた. % eigの時間測定 clear all; nLoop = 10; sizeM = 2.^(5:12); nSizeM = numel(sizeM); times = zeros(nSizeM, nLoop); for iSizeM = 1:nSizeM disp(sizeM(iSizeM)); …
MATLABの転置には普通,「’」を使っていたのだけれども, 「.'」との違いが分からなかったので,調べたついでにメモ.「’」は共役転置 「.'」は転置.次の例を見てもらえれば,分かると思う. >> x=[1+j; 1-j] x = 1.0000 + 1.0000i 1.0000 - 1.0000i >> x' …
TwitterでFizzBuzzが少し話題にあがっていたので, MATLABで書いてみました. 何も考えず書いてみた とりあえず,普通に書くとこんな感じ. for i = 1:15 if mod(i,15) == 0 fprintf('FizzBuzz,'); elseif mod(i,3) == 0 fprintf('Fizz,'); elseif mod(i,5) …
自己組織化マップを簡単に勉強してみたので, ついでにMATLABでプログラムを書いてみた.アルゴリズムはwikipediaとかを参考に書いてみた.RGBのデータを適当に用意して,そのデータに対してSOMを試してみた.以下,ソースと実行結果. ソース % setting sam…
runを使っていて少しはまったので、例のごとく備忘録。hogehoge.mっていうファイルをrunで実行するとき、 str ='hogehoge'; run(str); こんな感じでいつも書いているんだけど、 hogehogeっていう変数とか関数が事前にあるとそっちが優先されるらしく、 hogeh…
The Elements of MATLAB Style作者: Richard K. Johnson出版社/メーカー: Cambridge University Press発売日: 2010/12/31メディア: ペーパーバック クリック: 5回この商品を含むブログ (1件) を見る よくあるスペースはこういう感じに入れましょう。 変数名…
matlabが欲しくなったので, 買ってみました.matlabのstudent versionを買う場合, ・生協でかう. ・mathwarks社から買う. ・amazon.co.jpで買う. の3つの方法があったのですが,うちの大学には生協がないのと,20000万円ぐらいするので1番目は却…
それぞれのデータに対して,距離行列Dにおいて, K近傍だけ残すDを作る. [tmp, ind] = sort(D); for i=1:N D(i,ind((2+K):end,i)) = INF; end D = min(D,D');
前回の続き。 フィッシャーの線形判別を用いて3次元にplotしてみました。射影後の次元はc-1=9-1=8次元なのですが、 固有値の大きい3つを選んで出力してみました。うーんきれいに分かれています。 これだけきれいに分かれていれば、 「各クラスの平均ベクト…
For文とかでデバッグする際にループを1回ずつ止めながら 出力を見たい時がある。その時は par(ask=TRUE) を使うと便利。 ユーザが何か入力するまで処理が止まってくれる。
じゃんけんの手(ぐー、ちょき、パー)をHLAC(25次元)で特徴抽出、 フィッシャーの線形判別で3-1=2次元の部分空間に射影。 その結果は以下の通り。 データ数はそれぞれの手が300枚。 赤:ぐー、緑:ちょき、青:パー「平均ベクトルとのユークリッド距離が最短…
rimageというパッケージをダウンロードしてくる。rimageの動作例 library(rimage) data(logo) op <- par(mfrow=c(2,2)) plot(logo, main="Original") plot(thresholding(logo, mode="fixed"), main="threshold=0.5") plot(thresholding(logo, mode="fixed", …