ऑक्टेव / मतलाब: एक वेक्टर का विस्तार करें जो इसे खुद को दोहराता है?


93

क्या एक वेक्टर का विस्तार करने का एक तरीका है जो इसे स्वयं दोहराता है?

>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] के लिए


आप क्रोन - क्रोनेकर उत्पाद ऑपरेटर का उपयोग कर सकते हैं। जैसे v=[1 2]और v100=kron(ones(1,100),v)वेक्टर है v100=[v v ... v](100 बार)। यदि आप किसी कालम-सदिश yको अपने Kसमय के अनुसार बदलना चाहते हैं , तो उपयोग करें yK=kron(ones(K,1),y)
पैन्टेलिस सोपासाकिस

जवाबों:



6

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

हालांकि, यदि आप एक सामान्य समाधान चाहते हैं जो हमेशा वेक्टर को सबसे लंबे समय तक दिशा में दोहराता है, तो रिपेट और इंडेक्सिंग का यह संयोजन निम्न होना चाहिए:

 v10=v(repmat(1:length(v),1,5))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.