2010-03-16 17 views
7

MATLAB में मैं कुछ जावा रूटीन का उपयोग कर रहा हूं जिसे मैंने एक MyQSL डेटाबेस के साथ इंटरफ़ेस में लिखा है। एक दिनचर्या एक बूलियन मानMATLAB में क्या मैं एक जावा बूलियन को MATLAB लॉजिकल में परिवर्तित कर सकता हूं?

result <1x1 java.lang.Boolean> 
>> result 
result = 
true 

जब मैं इसे सशर्त कथन में उपयोग करता हूं तो मुझे एक त्रुटि संदेश मिलता है।

>> if result, 
disp('result is true') 
end 
??? Conversion to logical from java.lang.Boolean is not possible. 

क्या जावा बूलियन क्लास को MATLAB लॉजिकल प्रकार के रूप में उपयोग करने का कोई तरीका है? या क्या मुझे अपने जावा दिनचर्या से पूर्णांक मूल्यों को वापस करने का सहारा लेना है?

+0

यदि यह एक जावा दिनचर्या आप ने लिखा है, आप java.lang.Boolean या आदिम बूलियन लौट रहे है? यदि आप प्राइमेटिव्स लौटते हैं, तो वे स्वचालित रूप से मैटलैब प्रकारों में कनवर्ट हो जाएंगे। बॉक्स किए गए मूल्य ऑब्जेक्ट्स नहीं होंगे। यदि आप सरणी लौटने के लिए मिलता है, तो डबल [] और डबल [] प्रदर्शन प्रभाव पड़ता है: प्राइमेटिव तेज़ होते हैं। –

+0

मैं अभी भी एक जावा नौसिखिया हूं इसलिए मुझे पूरा यकीन नहीं है। नियमित रूप से मैं 'बूलियन पंक्ति = झूठी' घोषित करता हूं; और फिर अंत में 'वापसी पंक्ति;'। अब जब यह MATLAB पर वापस आ जाता है तो यह इसे एक java.lang.Boolean की पहचान करता है। क्या आप कह रहे हैं कि यह प्राचीन बूलियन प्रकार से अलग है? हां मैंने देखा है कि int और डबल प्रकार लौट रहे हैं जो ये स्वचालित रूप से मूल MATLAB फ्लोट प्रकार में परिवर्तित हो जाते हैं। यह सिर्फ बुलियन प्रकार है जो मेरे लिए काम नहीं कर रहा है। – Adrian

उत्तर

8

उदाहरण:

b = java.lang.Boolean(true); 

if b.booleanValue 
    disp('val is true') 
else 
    disp('val is false') 
end 

और सुनिश्चित करने के लिए:

>> v = b.booleanValue; 
>> whos v 
    Name  Size   Bytes Class  Attributes 

    v   1x1     1 logical    
+0

पर स्पॉट - आपकी मदद के लिए बहुत धन्यवाद। – Adrian

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