2016-03-26 16 views
5

में वेक्टरों को सार या जोड़ना मैं मैट्रिक्स के वैक्टर को घटाने की कोशिश कर रहा हूं। दूसरे शब्दों में लगता है कि मैं तत्वोंमैट्रिक्स

x1 x2 x3 x4 
y1 y2 y3 y4 
z1 z2 z3 z4 

मैं वैक्टर

x1 
y1 
z1 

और

x2 
y2 
z2 

मैं कैसे यह करने के लिए सक्षम हो जाएगा घटाना करने में सक्षम होना चाहता हूँ के साथ मैट्रिक्स A है? मैंने

implict none 
real, dimension(3,4) :: A 
real,dimension(3) :: vector 
vector(1)=A(1,1)-A(1,2) 
vector(2)=A(2,1)-A(2,2) 
vector(3)=A(3,1)-A(3,2) 

हालांकि, यह बल्कि कच्चे है। साथ ही, अगर मुझे कई रकम या अवशेषों की गणना करने की आवश्यकता है, तो यह विधि अव्यवहारिक होगी, खासकर जब मैट्रिक्स बहुत बड़ा हो। मैं इसे और अधिक सुंदर ढंग से करने में सक्षम होना चाहता हूं। क्या मैट्रिक्स के अंदर वेक्टर निर्दिष्ट करने का कोई तरीका है? या ऐसा करने के लिए एक चौराहे रास्ता है?

उत्तर

3

आप [start]:[end][:stride] (फोरट्रान 2008 मानक, क्ल। 6.5.3 "ऐरे तत्व और सरणी अनुभाग": R621) द्वारा सरणी स्लाइस निर्दिष्ट कर सकते हैं। निर्दिष्ट आयाम के साथ सभी तत्वों का चयन करने के लिए, उदा।, A(:,1) चुनें। आपका अंतर तो पढ़ता है:

implicit none 
real, dimension(3,4) :: A 
real,dimension(3) :: vector 
vector(:)=A(:,1)-A(:,2) 

या यहाँ तक कि

vector=A(:,1)-A(:,2)