मैं एक मैट्रिक्स बनाने की कोशिश कर रहा हूं जो 3 x n है, प्रत्येक कॉलम समान है। इसे प्राप्त करने का सबसे आसान तरीका क्या है? संयोजन?MATLAB: प्रत्येक कॉलम के साथ एक मैट्रिक्स भरना
उत्तर
बाद
n=7
x=[1;2;3]
यह या तो
repmat(x,[1 n])
या
x(:,ones(1,n))
मैं कहूंगा कि इंडेक्स-आधारित समाधान जाने का तरीका है (और यह आमतौर पर तेज़ है)। – gnovice
धन्यवाद। repmat वह कीवर्ड है जिसे मैं ढूंढ रहा था, लेकिन भूल गया। – stanigator
octave-3.0.3:2> rowvec = [1:10]
rowvec =
1 2 3 4 5 6 7 8 9 10
octave-3.0.3:3> [rowvec; rowvec; rowvec]
ans =
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
उपयोग repmat
अगर पंक्तियों की संख्या बड़ी है (सप्टक एक खुला स्रोत/MATLAB का नि: शुल्क संस्करण के रूप में माना जा सकता है)।
octave-3.0.3:7> repmat(rowvec, 10, 1)
ans =
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
लोगों के एक 1 x 3 मैट्रिक्स
जैसे के साथ गुणा का प्रयोग करें, x * [1 1 1]
संपादित करें:
सप्टक में:
octave-3.0.3.exe:1> x = [1;2;3;4]
x =
1
2
3
4
octave-3.0.3.exe:5> x * [1 1 1]
ans =
1 1 1
2 2 2
3 3 3
4 4 4
यह '[x x x]' देता है। – kennytm
यह ऑक्टवे में काम करता है - – James
संपादित करें मुझे लगता है कि @ केनीटीएम का अर्थ यह हो सकता है कि यह '[x x x] '(जहां' x' एक कॉलम वेक्टर है), जब ओपी चाहता है' [x; एक्स; एक्स] '(जहां' x' एक पंक्ति वेक्टर है, जैसा कि उसके उत्तर में है), लेकिन सवाल थोड़ा संदिग्ध है, इसलिए मेरा जवाब। – Ramashalanka
यह स्पष्ट नहीं है है। क्या आप चाहते हैं [1 1 1; 2 2 2; 3 3 3] जहां कॉलम समान हैं या आप चाहते हैं [1 2 3; 1 2 3; 1 2 3] जहां प्रत्येक कॉलम एक ही संख्या है? – MatlabDoug
समान प्रश्न: http://stackoverflow.com/questions/2209207/producing-2d-array-from-a-1d-array-in-matlab – Amro