多分今見つけた3つのことは沢山のケースで行列演算だけでのプログラムを可能にしてくれる.
1つは見つけたというわけではなく,そこにいたけど有用性に気づいてなかったって話.
その1つ目は前にも書いた Boolean の辺り.
これは行列に対しても使え,例えば
によっては[F;T;F] が返される,ということ(これは一応知ってた,はず).p=[1;-2;5];s = p<0
もう1つは,行列は,ベクトルをその添字として取ることができるということ.
先程のに続いて,
を計算すれば,p は [101,-2,105] となる.案外革命的.ind=[1;3];p(ind)=p(ind)+100;
さ・ら・に これらと組み合わせておそらく素晴らしい威力を発揮するのは,今日見つけた find.
find indices of boolean vector or matrix true elements, と help browser には書いてあり,
boolean, find, そしてその find の結果を添え字として行列に対して用いれば,
行列の要素1つ1つに対する条件分岐をもった操作が可能になるわけだ.
これは使いやすそう.そして使いどころも多そうである.
ちょっとプログラム上手間がかかるので,もう少しうまいやり方も有るのかもしれないが.
No comments:
Post a Comment