Wednesday, 15 February 2012

c++ - How do I convert an armadillo matrix to a vector of vectors? -


मैंने एक आर्मडिलो c ++ मैट्रिक्स को निम्नानुसार बनाया है:

  arma :: mat A; A.zeros (3,4);  

मैं इसे <

  std :: vector & lt; std :: वेक्टर & LT; डबल & gt; & Gt; बी (3, स्टड :: वेक्टर & lt; डबल & gt; (4));  

मैं बी से बराबर कैसे सेट करूं? यदि कोई वैक्टर के सदिश के लिए कोई आसान तरीका नहीं है, तो सरणी के सरणी के बारे में क्या है, यानी, अगर मैं बी को

  डबल बी [3] [4] होना निर्धारित करता हूं;  

ऐसे मामलों में आप का प्रयोग करना चाहिए जो कि अर्मा की एक पूरी तरह से शानदार विशेषता है।

ध्यान दें कि इस पद्धति को किसी स्रोत ऑब्जेक्ट से सदिश के रूप में व्याख्या करने में सक्षम होने की आवश्यकता होगी। यही कारण है कि हमें हर पंक्ति के लिए यह बेहद कम करने की आवश्यकता है। यहां एक रूपांतरण पद्धति है:

<पूर्व> #include & lt; armadillo & gt; Typedef std :: वेक्टर & lt; डबल & gt; stdvec; Typedef std :: वेक्टर & lt; std :: वेक्टर & LT; डबल & gt; & Gt; stdvecvec; Stdvecvec mat_to_std_vec (आर्म :: चटाई और ए) {stdvecvec वी (एएन_रो); (आकार_टी i = 0; i & lt; A.n_rows; ++ i) के लिए {वी [i] = आर्मा :: कॉन्फिविटीटो & lt; Stdvec & gt; :: से (एओ (i)); }; वापसी वी; }

और यहां एक अनुकरणीय उपयोग है:

  #include & lt; iomanip & gt; # शामिल करें & lt; iostream & gt; Int main (int argc, char ** argv) {arma :: mat A = arma :: randu & lt; arma :: mat & gt; (5, 5); Std :: cout & lt; & lt; एक & lt; & lt; std :: endl; Stdvecvec वी = mat_to_std_vec (ए); (आकार_टी i = 0; i & lt; V.size (); ++ i) {के लिए (size_t j = 0; j & lt; v [i]। आकार (); ++ j) {std :: cout और lt ; & lt; "" & Lt; & lt; Std :: निश्चित & lt; & lt; Std :: setprecision (4) & lt; & lt; वी [मैं] [जे]; } Std :: cout & lt; & lt; std :: endl; } वापसी 0; }  

std :: setprecision अधिक पठनीय आउटपुट उत्पन्न करने के लिए प्रयोग किया जाता है:

  0.8402 0.1976 0.4774 0.9162 0.0163 0.3944 0.3352 0.6289 0.6357 0.2429 0.7831 0.7682 0.3648 0.7173 0.1372 0.7984 0.2778 0.5134 0.1416 0.8042 0.9116 0.5540 0.9522 0.6070 0.1567 0.8402 0.1976 0.4774 0.9162 0.0163 0.3944 0.3352 0.6289 0.6357 0.2429 0.7831 0.7682 0.3648 0.7173 0.1372 0.7984 0.2778 0.5134 0.1416 0.8042 0.9116 0.5540 0.9522 0.6070 0.1567  
<पी > अच्छा है!


No comments:

Post a Comment