タグ

vectorに関するyukimori_726のブックマーク (17)

  • はじパタ9章で飛ばされがちな部分の説明1(グラム-シュミットの正規直交化, 主成分分析) - Qiita

    はじパタ9章をそこそこ頑張って読んでもわからなかった人を対象にしています。 (社内勉強会用なので、言葉足らずな部分があるかも。。コメントしていただけたらできるだけすぐ返事します) 行列の四則演算、転置行列の定義や展開方法、行列の微分、逆行列は知っている前提です。 特異値分解、CLAFIC法に関する説明はこちら↓ http://qiita.com/yukimt3/items/1738bff16046a3d7c501 行列の四則演算、転置行列の定義や展開方法、行列の微分、逆行列に詳しくない人へ 行列の足し算、引き算 行列の掛け算 転置行列、逆行列、対称行列について 行列の微分について(各成分に対して偏微分しているだけ) 部分空間とは 例題ではじめる部分空間法の11 - 13枚目 例えばxyzの3次元空間(V)において、xy平面(W) \vec{x_1} = (1,0,0)\\ \vec{x_2

    はじパタ9章で飛ばされがちな部分の説明1(グラム-シュミットの正規直交化, 主成分分析) - Qiita
  • C++ vector::reserveの挙動を勘違いしていた件について - Qiita

    vector・stringのメンバ関数であるreserve関数の挙動を勘違いしてた。私のようによく知りもせずに使うとハマってしまうかもしれない。そもそもreserve関数で確保される容量(capacity)とは何なのか?要素数(size)とは何が違うのか? 容量(capacity) / 要素数(size)とは 容量とは要素を新たに挿入しても動的なメモリ確保が行われない 許容量 のこと 要素数とは実際にコンテナに格納されている要素の数のこと 容量(capacity) / 要素数(size)の注意点 容量を確保するのであって要素数を大きくする訳ではない イテレータendは動かずにbeginと同じ位置を指したまま 容量を確保したからといって要素数以上の位置にアクセスすべきではない また、容量が足りなくなるとvector・stringは その時点での2倍の大きさ の容量を用意してくれるので、名著E

    C++ vector::reserveの挙動を勘違いしていた件について - Qiita
  • vectorの指定したiteratorの要素番号を取得する - My Life as a Mock Quant

    これも良く忘れるのでメモん。例えば最大の要素自体はmax_elementで取得できるんだけど、それのindex番号が欲しい時の書き方。iteratorの初めとのdistanceを取ればよい。別に最大要素のiteratorじゃなくても良くて適当なiteratorとのdistanceしてやればいい。 #include <iostream> #include <vector> #include <string> #include <algorithm> int main() { std::vector<int> x; x.push_back(3); x.push_back(8); x.push_back(1); x.push_back(2); std::vector<int>::iterator iter = std::max_element(x.begin(), x.end()); size_

    vectorの指定したiteratorの要素番号を取得する - My Life as a Mock Quant
  • std::vectorのようなSTLコンテナの各要素に指定した関数を適用した結果を得る - シリコンの谷のゾンビ

    std::vectorのようなSTLコンテナの各要素に対して関数を適用した結果を簡単に書きたい. Perlでいうところのこんなイメージ. my @list = (1.0, 1.5, 2.0, 2.5); my @exp_list = map { exp($_) } @list; C++ではどう書くのだろう? STLで対応する関数が用意されているだろうなぁと思って手書きしていたので,今回ちゃんと調べてみたので自分用メモ. 結論からいえば,std::transform (algorithmヘッダ) を利用すればよい.ただし,最後の引数が関数オブジェクトである必要があるので,そのままではstd::expのような関数ポインタを利用できない.そこでstd::ptr_fun (functionalヘッダ) という関数アダプタ (と呼ばれるもの) を利用する.C++使いには常識なのだろうけれど,今日初め

    std::vectorのようなSTLコンテナの各要素に指定した関数を適用した結果を得る - シリコンの谷のゾンビ
  • ときわ台学/ベクトル解析/ベクトルの微分と公式

    このA '(t)のすべての成分が0 となる t =t0 の点を特異点,そうでない点を正則点といいます。すべての t でA'(t)が連続関数で正則点であるとき A(t) をなめらかなベクトル値関数といいます。(特異点では何が起こるのでしょうか⇒[#]) [2] 3変数ベクトル値関数 A =A(x,y,z)=(A1(x,y,z),A2(x,y,z),A3(x,y,z)) の偏微分は,

  • ベクトルと行列

    最終更新日:2004年4月1日 第1章へ webmaster@snap-tck.com Copyleft (C) 2000 SNAP(Sugimoto Norio Art Production)

  • http://nlp.dse.ibaraki.ac.jp/~shinnou/zemi2012/kernel/vector-bibun.pdf

  • ベクトルと行列 ベクトルと行列の演算例

    3.ベクトルと行列の演算例 1) ベクトルと行列を利用した演算例 さて、数式の羅列に頭が痛くなったところで、ベクトルと行列の演算を利用してケーキを作る時の費用について具体的に計算してみましょう。 まず最初に小麦粉200グラムだけを使って、味気ないケーキを作るとします。 小麦の単価が1グラム0.1円だとすると、ケーキの費用は次のように計算できます。

  • ベクトルで微分 - minus9d's diary

    備忘録として、ベクトルで微分することの定義をまとめる。ここでは、分かりやすいようにベクトルはすべて3次元とする。 定義 ベクトルの関数を、ベクトルで(偏?)微分することの定義は以下の通り。 例 よくあるのが をで微分するというもの。ここで、は3x3の正方行列で、全体はスカラー値。これを上の定義に基いて計算してみよう。 まず の値を計算すると、 となる。 ここで、さっきの定義に従って をを偏微分してみると と計算できる。もしAが対称行列なら、さらに と簡単にできる。この結果だけ見ると、高校数学の微分でをで微分するととなるのと似てますね。 他の考え方 サイボウズ・ラボ光成さんのPRML の2 章のための数学によると、の定義はを縦に並べた縦ベクトルとのこと。この定義で覚えたほうがイメージがつかみやすいかも。 参考 PRML の2 章のための数学 Vector and Matrix Differe

  • C++ 動的配列クラス std::vector 入門

    動的配列クラス std::vector とは std::vector とは C++ で標準に使用できるとっても便利な動的配列クラスでござるぞ。 通常配列と同じように [] 演算子で値を参照・代入することはもちろん、サイズ情報等の取得やデータの挿入削除なども可能だ。 「動的配列」とは配列サイズを自由に増減できるという意味。「可変長配列」と呼ばれることもある。 通常の配列は非常に便利で使用頻度の高いデータ構造だが、サイズを予め指定する必要があり、実行時に動的にサイズを変更することが出来ない。 例えば、「int data[100]; 」と宣言した場合、実行時にデータ数が100を超えるとお手上げだ。 スネークゲームでは、ヘビの胴体の長さがどんどん長くなるので、 胴体座標を動的配列で実装している。 これを普通の配列で実装すると、胴体の最大長を保持する可能性があるので、78*21=1638 のサイズの

    C++ 動的配列クラス std::vector 入門
  • スペース区切りで入力される値をvectorに読み込む - Qiita

    #include<string> #include<sstream> #include<vector> using namespace std; vector<string> split(const string &s,char d){ vector<string> r; size_t c=0,f; while((f=s.find_first_of(d, c))!=string::npos){ r.push_back(string(s,c,f-c)); c=f+1; } r.push_back(string(s,c,s.size()-c)); return r; } template <typename T> vector<T> getValues(){ string s; getline(cin,s); vector<string> v=split(s,' '); vector<T> r

    スペース区切りで入力される値をvectorに読み込む - Qiita
  • gcc-4.0 で auto-vectorization - pyopyopyo - Linuxとかプログラミングの覚え書き -

    gcc-4.0のCVS版で,gcc-4.0の目玉機能の一つである auto-vectorization(自動ベクトル化?)を試してみる.まだgcc-4.0はリリース前のベータ版でバグもたくさんある.でも今のうちからgcc-4.0で最適化が掛かり易いコードが書けるようになっておけば,今後幸せになれる気がする. auto-vectorization の概要 詳細は http://gcc.gnu.org/projects/tree-ssa/vectorization.html が詳しい. 要点としては, -ftree-vectorize を指定する. intel のCPUを使っているなら -msse か -msse2 を指定する. -ftree-vectorizer-verbose=数字 で詳細な情報が出力される. ポインタには __restrict__ を付ける 実際に試してみる #defin

    gcc-4.0 で auto-vectorization - pyopyopyo - Linuxとかプログラミングの覚え書き -
  • std::vector - C++入門

    概要 C++ の配列は、サイズをプログラマが管理しますが、std::vector は、配列のサイズを意識せずに、プログラミングできます。 STLに含まれるvectorなどのデータを管理するテンプレートクラスをコンテナと呼びます。 std::vector シンプルな例 std::vecotrを2次元配列として扱う std::vectorで構造体を扱う std::vectorをコピーする std::vector::insert : insertでstd::vectorを連結できます。 インタフェース std::vector メンバ 意味

  • C++高速化

    はじめに 速いプログラムで得られるメリットを超えるようなコストを払わないように。 まずは動くプログラムを書いて目的を達成することが大事。 自分律速じゃなくてプログラム律速だなと感じた段階でリファクタリングを考える。 プログラム来の意図が読み取れなくなりそうなマニアックな高速化は避ける。 清く正しくメンテナンスしやすいプログラムを書くほうが結局は生産的。 学習目的でない限り、車輪の再発明を避ける。 やろうとしていることはきっと既に誰かが実現し、 再利用可能な形で公開してくれているはず。 まずは標準ライブラリとかBoostを探してみる。 あとGitHubでスターが多いやつとか。 頑張れコンパイラ Intelの icc でビルドされたプログラムは速いらしい。 gcc や clang の最適化技術も着々と進歩しており、 新しいコンパイラを使うほうがその恩恵を受けられる。 最適化オプション htt

    C++高速化
  • C++プログラマ キャスブログ

    C++11から右辺値参照とムーブセマンティクス呼ばれる機能が追加されました。 それについては別の回でご紹介したいと思います。 今回はコンテナに追加するメソッドを置き換えるだけで効率的になる手段をお伝えします。 結論から言えば下記のメソッドを置き換えましょう! push_back → emplace_back push_front → emplace_front こちらが参考コードです。 #include <vector> //std::vectorを使うためのヘッダー #include <cstdio> //printfを使うためのヘッダー class Test { public: Test(int i) { printf( "コンストラクタ\n"); } Test(const Test&) { printf( "コピーコンストラクタ\n"); } }; int main() { std:

  • CodeIQについてのお知らせ

    2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod

    CodeIQについてのお知らせ
  • 固有値問題 - おっぱいそん!

    Pythonで固有値問題を解く方法についてメモしておく。 メジャーな方法として、以下の3つがある numpy.linalgの関数を使う。 scipy.linalgの関数を使う。 scipy.sparse.linalgの関数を使う。 numpy.linalgとscipy.linalgには以下の4つの関数がある。 eig:一般の行列の固有値・固有ベクトルを求める。 eigh:エルミート(or 実対称)行列の固有値・固有ベクトルを求める。 eigvals:一般の行列の固有値のみを求める。 eigvalsh:エルミート(or 実対称)行列の固有値のみを求める。 関数名のhはHermitianの略。Scipyだと一般化固有値問題*1もオプションで出来る。 ちなみに、scipy.linalgはnumpy.linalgに含まれる関数はすべて含んでいて、さらに追加で他の関数も含んでいる。また、scipy.

    固有値問題 - おっぱいそん!
  • 1