2012-11-16 13 views
5

में बदलें मैं इसे एक कॉलम में कैसे बदल सकता हूं, फिलहाल सभी 750 प्रविष्टियां एक पंक्ति पर हैं?पंक्ति वेक्टर को कॉलम वेक्टर

p = normal(1:750)-1; 

मैं कोशिश की है:

columns = 1; 
p = normal(1:750)-1; 
p = p(1:columns); 

मैं भी कोशिश की है:

rows = 1000; 
p = normal(1:750)-1; 
p = p(1:rows)'; 

उत्तर

6

मैं तुम सिर्फ स्थानांतरित कर सकता है कल्पना कर सकते हैं:

p = (normal(1:750)-1)' 
+0

धन्यवाद दान दस्तावेज में कहीं भी नहीं मिला! [पिछला प्रश्न] (http://stackoverflow.com/questions/13412283/matching-row-samples-to-class-labels) इसलिए मैंने पूछा। –

+1

यकीन है कि यह संभवतः बीटीडब्ल्यू है जो आप अपने पहले प्रयास में कोशिश कर रहे थे: पी = पी (1: लंबाई (पी), 1); लेकिन 'ट्रांसफर करने के लिए' निश्चित रूप से सही दृष्टिकोण है। – Dan

+1

यदि कोई जटिल संख्या का उपयोग कर रहा है, तो ध्यान दें कि '' '(या' ctranspose() 'ऑपरेटर जटिल संयोग हस्तांतरण है। यहां दस्तावेज़ में अधिक जानकारी: https://www.mathworks.com/help/matlab/ref/ctranspose.html। यदि आप nonconjugate ट्रांसपोज़ करना चाहते हैं, तो इसके बजाय '।'' (या' ट्रांसपोज़() ') का उपयोग करें। – jvriesem

22

यह में आम बात हैका उपयोग करने के लिए MATLABऑपरेटर : एक कॉलम वेक्टर में कुछ परिवर्तित करने के लिए। जानते हुए भी या देखभाल करता है, तो normal एक पंक्ति वेक्टर या एक स्तंभ वेक्टर है के बिना, आप तो की तरह, एक स्तंभ वेक्टर होने के लिए मजबूर कर सकते हैं p:

p = p(:); 

इस के बाद, pगारंटी एक स्तंभ वेक्टर हो रहा है।

+0

तो, ए = 1: 5 एक पंक्ति वेक्टर उत्पन्न करता है, लेकिन बी = ए (:) एक कॉलम वेक्टर है? – John

+2

@ जॉन हाँ, बिल्कुल। –

+0

यह मेरी पसंदीदा विधि है, क्योंकि यह पहले से ही एक कॉलम वेक्टर था, तो यह एक कॉलम वेक्टर को एक पंक्ति वेक्टर में परिवर्तित नहीं करेगा। – raoulcousins

3

सेटिंग पी = पी (:); वास्तव में सबसे अच्छा तरीका है।

'ट्रांसफर करने के लिए' के ​​उपयोग से सावधान रहें। मैंने देखा है कि यह नाटकीय रूप से कई बार असफल रहा है। गैर-संयुग्मित हस्तांतरण के लिए matlab ऑपरेटर वास्तव में है। ' तो आप करेंगे:

p = p.' 

यदि आप जटिल संयोग लेने के बिना ट्रांसफर करना चाहते हैं।