2011-04-04 12 views
6

क्या कोई व्यक्ति उदाहरणों को गुणा करने के लिए यूब्लैस उत्पाद का उपयोग करने का उदाहरण प्रदान कर सकता है? या यदि कोई अच्छा सी ++ मैट्रिक्स लाइब्रेरी है तो आप अनुशंसा कर सकते हैं कि मैं भी इसका स्वागत करूंगा। यह एक प्रमुख सिरदर्द में बदल रहा है।बूस्ट यूब्लैस मैट्रिक्स/वेक्टर उत्पाद

vector<double> myVec(scalar_vector<double>(3)); 
matrix<double> myMat(scalar_matrix<double>(3,3,1)); 
matrix<double> temp = prod(myVec, myMat); 

यहाँ त्रुटि है:

cannot convert from 'boost::numeric::ublas::matrix_vector_binary1<E1,E2,F>' to 'boost::numeric::ublas::matrix<T>' 

मैं अपने खोज समाप्त हो

यहाँ मेरी कोड है। Stackoverflow के पास इस here के बारे में एक प्रश्न है। बूस्ट प्रलेखन में एक उदाहरण here है। मैंने उदाहरण से कोड कॉपी किया है, लेकिन इसका मेरे लिए कोई उपयोग नहीं है क्योंकि stdout के लिए काम करने वाला टेम्पलेट जादू मेरे लिए बेकार है।

#include <boost/numeric/ublas/matrix.hpp> 
#include <boost/numeric/ublas/io.hpp> 

int main() { 
    using namespace boost::numeric::ublas; 
    matrix<double> m (3, 3); 
    vector<double> v (3); 
    for (unsigned i = 0; i < std::min (m.size1(), v.size()); ++ i) { 
     for (unsigned j = 0; j < m.size2(); ++ j) 
      m (i, j) = 3 * i + j; 
     v (i) = i; 
    } 

    std::cout << prod (m, v) << std::endl; 
    std::cout << prod (v, m) << std::endl; 
} 

उत्तर

3

मुझे लगता है कि ज्यादा देखा बूस्ट uBLAS में नहीं है, लेकिन यकीन है कि Eigen अच्छा है, और अच्छा प्रदर्शन भी है।

+0

धन्यवाद, मुझे एक नज़र आएगी। वाह। मैं वास्तव में अब तक इसे पसंद कर रहा हूँ। मैंने मैट्रिक्स लाइब्रेरी के लिए कुछ समय गुगल किया, लेकिन यह नहीं आया। आम तौर पर आप परिणामों और अन्य में LAPACK ++ एमटीएल प्राप्त करते हैं। कभी-कभी वे खुले लाइसेंस प्राप्त नहीं होते हैं। कभी-कभी वे सुरुचिपूर्ण नहीं होते हैं। – Budric

9

वेक्टर और मैट्रिक्स का उत्पाद एक वेक्टर है, मैट्रिक्स नहीं।

+0

हाँ जो काम करता है। हालांकि मुझे नहीं लगता कि यह 1x3 मैट्रिक्स के लिए भी क्यों काम नहीं कर सकता है। – Budric

+0

यह होगा, लेकिन आपको इसे मैट्रिक्स के रूप में घोषित करना होगा। मुझे लगता है कि समस्या लचीलापन में है कि बूस्ट अभी भी हेडर फ़ाइलों का उपयोग करते समय प्रदान करने की कोशिश करता है। यह कुछ मामलों में उपयोग करना बहुत मुश्किल बनाता है और टेम्पलेट जटिलताएं आपको पागल करने लगती हैं। – JCooper

+0

यही है जो मुझे बूस्ट के बारे में मिलता है। मुझे लगता है कि ईजिन लाइब्रेरी (केवल हेडर) टेम्पलेट्स, गति और उपयोगिता के बीच एक अच्छा संतुलन करने में कामयाब रहे। तो मैं बूस्ट uBLAS का उपयोग करने के बजाय उस समाधान के साथ जा रहा हूँ। – Budric

संबंधित मुद्दे