2019-05-03から1日間の記事一覧

シンボリック関数を関数ハンドルに直して、arrayfunを適用する

arrayfunの使い方 - ハリ・セルダンになりたくて(はてダから移行中) と Matlabのシンボリック式を無名関数(関数ハンドル)に変換する関数 - ハリ・セルダンになりたくて(はてダから移行中) の合わせ技。 sf(x,y)というシンボリック関数があった場合、そ…

ある数字の繰り返しである行列を作成するのに効率的方法は?

たとえば、7が単に並んだ列ベクトルをつくるとき、Matlabで一番効率的な方法はなにか? tic; repmat(7, 1000000,1); toc;経過時間は 0.006551 秒です。tic; ones(1000000,1) * 7; toc;経過時間は 0.008067 秒です。 repmatの方が微妙に早い?のか?

arrayfunの使い方

Matlabに詳しい人には当たり前の話だと思うがarrayfunの使い方を自分用にメモ(Rではapply系の関数に該当するのがarrayfun、cellfun、bsxfunだと思えばいいのかな・・・): plusFun = @(x, y) x + 2 * yplusFun(1,2)arrayfun(plusFun, [1 2], [3 4])arrayfu…