2016-02-01 5 views
6

मैं एक खाली मैट्रिक्स शुरू में हैजूलिया मैट्रिक्स को एक पंक्ति के रूप में वेक्टर कैसे जोड़ना है?</p> <pre><code>m = Matrix(0, 3) </code></pre> <p>और एक पंक्ति है कि मैं जोड़ना चाहते हैं:

v = [2,3] 

मैं यह करने के लिए प्रयास करें:

[m v] 

लेकिन मैं कोई त्रुटि मिलती है

ERROR: ArgumentError: number of rows of each array must match 

ऐसा करने का सही तरीका क्या है?

उत्तर

6

ऐसा इसलिए है क्योंकि आपके मैट्रिक्स आकार मेल नहीं खाते हैं। विशेष रूप से वी में मिलान करने के लिए पर्याप्त कॉलम नहीं होते हैं। और इसकी स्थानांतरित

तो यह does not काम

m = Matrix(0, 3) 
v = [2,3] 
m = cat(1, m, v) # or a = [m; v] 
>> ERROR: DimensionMismatch("mismatch in dimension 2 (expected 3 got 1)") 

जबकि इस

m = Matrix(0, 3) 
v = [2 3 4] 
m = cat(1, m, v) # or m = [m; v] 
>> 1x3 Array{Any,2}: 
>> 2 3 4 

करता है और यदि आप इसे फिर से चलाने के लिए यह एक और पंक्ति

m = cat(1, m, v) # or m = [m; v] 
>> 2x3 Array{Any,2}: 
>> 2 3 4 
>> 2 3 4 
+1

से और साथ एक दो आयामी सरणी बनाने के लिए, या यदि आप बनाए रखना चाहते हैं अपने 'v = [2,3,4]' प्रारूप आप उपयोग कर पंक्ति जोड़ सकते हैं 'एम = [एम; वी '] '। – Rob

2

उपयोग vcat (CONCATENATE बनाता है लंबवत) कार्य:

help?> vcat 
search: vcat hvcat VecOrMat DenseVecOrMat StridedVecOrMat AbstractVecOrMat levicivita is_valid_char @vectorize_2arg 

    vcat(A...) 

    Concatenate along dimension 1 

सूचना आप वेक्टर v, यानी स्थानांतरित करने के लिए है।

julia> v = zeros(3) 
3-element Array{Float64,1}: 
0.0 
0.0 
0.0 

julia> m = ones(3, 3) 
3x3 Array{Float64,2}: 
1.0 1.0 1.0 
1.0 1.0 1.0 
1.0 1.0 1.0 

julia> vcat(m, v') # ' 
4x3 Array{Float64,2}: 
1.0 1.0 1.0 
1.0 1.0 1.0 
1.0 1.0 1.0 
0.0 0.0 0.0 

julia> v' # ' 
1x3 Array{Float64,2}: 
0.0 0.0 0.0 

julia> vcat(m, v) 
ERROR: DimensionMismatch("mismatch in dimension 2 (expected 3 got 1)") 
in cat_t at abstractarray.jl:850 
in vcat at abstractarray.jl:887 

नोट:: v', और यदि आप एक DimensionMismatch त्रुटि मिलती है टिप्पणियां; # ' सिंटैक्स को अच्छी तरह से हाइलाइट करने के लिए बस वहां हैं।

0

क्या Matrix जूलिया में एक द्वि-आयामी सरणी बनाता है? यदि आप m = [0, 3] के साथ प्रयास करते हैं, जो आपके लिए एक आयामी Vector बनाता है, तो आप इसे [m; v] द्वारा जोड़ सकते हैं।

मैं [m v] का उपयोग कर लगता है कि जूलिया दस्तावेज़

संबंधित मुद्दे