Entries from 2014-01-01 to 1 year

MATLABで自動的にfigureを重ならないように並べる

MATLABで、figureが互いに重ならないように並べるgridfigureというコマンドを作りました。 gridfigure - File Exchange - MATLAB CentralMATLABのfigureには'defaultfigurecreatefcn'という隠されたプロパティがあり、これを変えることでfigureウインドウ作…

Generalized "Make 10 with 4 numbers game" solver

「4つの数字で10を作るゲーム」を一般化した、「与えられたn個の数字の四則演算(追記:および括弧)でNを作るゲーム」の解を一つ求めるコードをPythonで書きました。 ポイントは、Generator機能を再帰して使っていることです。これにより、計算式の生成がか…

UnityのTransformの子要素機能は大量に要素を詰めると重い

Sceneロード実行時に128^2個(16384個)のGameObjectをInstantiateし、それを全てUnityのGameObjectに直接の子Transformとして指定するようにしたところ、Sceneのロードがかなり重くなりました。更に、各子要素のあるメソッドを呼んでいたのですが、これはIn…

macで快適にTeX - Sublime Text (make) から直接TeXからPDF作成できるテンプレート

TeX

普段使っている、Sublime Textから「Command + B」を押すだけ(あるいは、好みのエディタからmakeするだけ)でTeX書類が作れる、shellscript・Makeを使ったTeXテンプレートを紹介します。Mac OS X 10.8, 10.9で(日々)動作確認しています。特に、JPEG・PNG…

MATLAB BF Interpreter

bfi.m function ret = bfi(prog) m = zeros(1,1024); mp = 1; stdout = []; prog = regexprep(prog, '[^><\+-\[\]\.,]', ''); prog = strrep(prog, '+', 'm(mp) = m(mp) + 1;'); prog = strrep(prog, '-', 'm(mp) = m(mp) - 1;'); prog = strrep(prog, '>', …

MATLAB Quine

Quineとは、「自分自身のコードを出力するプログラム」です。 これの難しさは、例えば printf("hello world!");という文字列を出力するためには、 printf("printf(\"hello world!\");");のようなものを書けば良いのですが、こうすると作ったコードが元のコー…

MATLABの無名関数内で条件分岐・複数行実行を行う方法

これらは、以前Obfuscated MATLAB Codeを書いた時に使ったテクニックなのですが、通常のMATLABプログラミングでも使えそうだと思ったので紹介します。 Yet Another Obfuscated MATLAB Code - woodrush’s diaryこれらのテクニックの根底にあるのが、fevalとい…

Yet Another Obfuscated MATLAB Code

なんと、以下のコードはちゃんとした、実行できるMATLABコードになっています。growth.m figure(1) clf,hold on,grid on,view(58,38),feval(@(mm,x)mm(@(O)mm(@(Y,U,V,W,v,nN,NN,Mm,mM,md,Nn)... mm(@(G)mm(Y(G),x,0,0,v(mM(x))),mm(@(L)(@(M)(@(n,p,q,r)mm(…