2011.5

哲学史の概観
西洋哲学史 岩崎武雄

現代社会のトピック
教養としての大学入試国語

サンデル正義論のステップ
教養としてのロースクール小論文(上)(下)

科学の根っこ
科学革命の構造 クーン
科学哲学の冒険
疑似科学と科学の哲学

相対主義の極北 入不二基義

SF
幼年期の終わり

イノベーションについて
デザイン思考が世界を変える

nacs holic

劇場
ブラックスワン
英国王のスピーチ

クロサワ
影武者
椿三十郎

時代劇
13人の刺客

スコセッシ
シャッターアイランド
ギャングオブニューヨーク
ディパーテッド

ハングオーバーのキャスト
デューデート

ギャングもの
ロードトゥパーディション
カリーノの道

レオン(ディレクターズカットじゃないやつ)
Matlabを高速化するためには、forループの計算をできるだけベクトル化することが重要である。
そのために有用なMatlab関数をまとめる。

bsxfun %%%%%%%%%%%%%%%

プログラム例
A = magic(100);
tic
B = bsxfun(@minus, A, mean(A));
toc
tic
C = zeros(100);
for n = 1:100
C(n,:) = A(n,:)-mean(A);
end
toc
isequal(B,C)

出力例
経過時間は0.000171秒です
経過時間は0.005295秒です
ans = 1

reshape %%%%%%%%%%%%%%

プログラム例
A = rand(1200);
tic
B = reshape(A,25,[]);
B = sum(B);
B = reshape(B,48,[]);
B = reshape(B',25,[]);
B = sum(B);
ave_B = B./(25*25);
ave_B = reshape(ave_B,48,48);
toc

tic
for n = 1:1200./25
for m = 1:1200./25
ave_C(m,n) = mean(mean(A(25*n-24:25*n, 25*m-24:25*m)));
end
end
toc

出力例
経過時間は0.003780秒です
経過時間は0.108214秒です


accumarray %%%%%%%%%%%%%%%%%%%%%


histc %%%%%%%%%%%%%%%%%%%%%%%%%%

A = rand(100,1);
tic
N1 = histc(A,0.005:0.01:0.995);
toc
tic
N2 = zeros(100,1);
for n = 1:100
N2(n) = sum(A>=n*0.01-0.005 & Aend
toc
isequal(N1,N2)

経過時間は0.000047秒です
経過時間は0.001292秒です
ans = 1


diff %%%%%%%%%%%%%%%%%%%%

A = rand(100,1);
tic
diff1 = diff(A);
toc
tic
diff2 = zeros(99,1);
for n = 1:99
diff2(n) = A(n+1)-A(n);
end
toc
isequal(diff1,diff2)

経過時間は0.000027秒です
経過時間は0.000242秒です
ans = 1

repmat%%%%%%%%%%%%%%%%%%%%%%%


permute %%%%%%%%%%%%%%%%%%%%%%

A = rand(100,100,100);
tic
B = permute(A,[2,3,1]);
toc
tic
C = zeros(100,100,100);
for l = 1:100
for m = 1:100
for n = 1:100
C(m,n,l) = A(l,m,n);
end
end
end
toc
isequal(B,C)

経過時間は0.011770秒です
経過時間は1.910813秒です
ans = 1


sparse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%