2010-03-17 14 views
79

क्या इसे दोहराने के द्वारा वेक्टर का विस्तार करने का कोई तरीका है?ऑक्टवे/मैटलैब: वेक्टर को दोहराने के लिए इसे दोहराएं?

>v = [1 2]; 
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl 

फिर v10 होगा:

>v10 
    1 2 1 2 1 2 1 2 1 2 

यह सिर्फ नहीं करने के लिए [1 2]

+0

आप Kron उपयोग कर सकते हैं:

हालांकि, अगर आप एक सामान्य समाधान है कि हमेशा सबसे लंबे समय तक दिशा में वेक्टर दोहराता चाहते हैं, repmat और अनुक्रमण के इस संयोजन चाल करना चाहिए। जैसे 'वी = [1 2]' और 'v100 = क्रोन (एक (1,100), v)' वेक्टर 'v100 = [v v ... v]' (100 बार) है। यदि आप कुछ कॉलम-वेक्टर 'y' को अपने साथ' के' बार जोड़ना चाहते हैं, तो 'yK = kron (वाले (के, 1), y) का उपयोग करें। –

उत्तर

127

समारोह आप देख रहे हैं repmat() है, सामान्य स्थिति के लिए काम करना चाहिए।

v10 = repmat(v, 1, 5) 
+0

हां यह है, बहुत बहुत धन्यवाद। – Tom

+1

ऑक्टेट दस्तावेज से लिंक: [http://www.gnu.org/software/octave/doc/interpreter/Special-Utility-Matrices.html#Special-Utility-Matrices ](http://www.gnu.org/ सॉफ्टवेयर/सप्तक/doc/दुभाषिया/विशेष-उपयोगिता-Matrices.html # विशेष-उपयोगिता-मैट्रिसेस) – Paweld2

6

जाहिर है कि यदि आप जानते हैं कि आप किस दिशा में वेक्टर का विस्तार करना चाहते हैं तो स्पष्ट रूप से रिपैट जाना है। - Kroencker उत्पाद ऑपरेटर

v10=v(repmat(1:length(v),1,5)) 
संबंधित मुद्दे