2015-09-17 8 views
5

जूलिया में बूलियन तुलना के बारे में मेरे पास एक साधारण सवाल है। मैं जूलिया में निम्नलिखित मैटलैब कोड का अनुवाद कैसे करूं?जूलिया: अरणों के साथ बूलियन तुलना

मैटलैब:

% create parameters 
o = -3; 
mat = [65 -4; 65 -3; 65 -2] 

% determine which rows of matrix have column 2 less than o AND column 1 equal to 65. 
result = (o < mat(:,2) & mat(:,1) == 65) 

मैं कोशिश की है जूलिया में निम्नलिखित:

# create parameters 
o = -3 
mat = zeros(3,2) 
mat[:,1] = 65 
mat[1,2] = -4 
mat[2,2] = -3 
mat[3,2] = -2 
mat 

# attempt to create desired result 
o .< mat[:,2]        # this part works 
mat[:,1] .== 65        # this part works 
test = (o .< mat[:,2] && mat[:,1] .== 65) # doesn't work 
test = (o .< mat[:,2] .& mat[:,1] .== 65) # doesn't work 
test = (o .< mat[:,2] & mat[:,1] .== 65)  # doesn't work 

उत्तर

5

यह ऑपरेटर पूर्वता की बात है। & में जूलिया में मैटलैब की तुलना में अधिक प्राथमिकता है। बस अपने कोष्ठकों के आसपास बदलाव:

test = (o .< mat[:,2]) & (mat[:,1] .== 65) 

Noteworthy differences from Matlab देखें अधिक जानकारी के लिए मैनुअल में (और यह अन्य मतभेद के माध्यम से पढ़ने लायक भी है)।

1

ध्यान दें कि आप जूलिया में एक ही सरणी निर्माण सिंटैक्स का उपयोग कर सकते हैं:

o = -3 
test = (o .< mat[:,2]) & (mat[:,1] .== 65) 

julia> find(test) 
1-element Array{Int64,1}: 
3 
:

julia> mat = [65 -4; 65 -3; 65 -2] 
3x2 Array{Int64,2}: 
65 -4 
65 -3 
65 -2 

तुम भी find उपयोग कर सकते हैं, जिसके परिणामस्वरूप सूचकांकों की एक सूची प्राप्त करने