2012-07-12 26 views
5

मैं एक प्रगणक है:स्ट्रिंग गणन को

classdef Commands 

    properties 
     commandString; 
     readonly; 
    end 
    methods 
     function obj = Commands(commandString, readonly) 
      obj.commandString = commandString; 
      obj.readonly= readonly; 
     end 
    end 
    enumeration 
     PositionMode('p', false) 
     TravelDistance('s', false) 
    end 
end 

और मैं एक स्ट्रिंग है:

Commands.PositionMode 

वहाँ किसी भी बेहतर है:

currentCommand = 'PositionMode'; 

मैं वापस जाने के लिए सक्षम होना चाहते हैं

methods(Static) 
    function obj = str2Command(string) 
     obj = eval(['Commands.' string]); 
    end 
end 
से समाधान

उत्तर

5

संरचनाओं के साथ, आप वस्तुओं के साथ dynamic field names का उपयोग कर सकते हैं।

साथ

currentCommand = PositionMode 

कॉल

Commands.(currentCommand) 

का मूल्यांकन करता है

Commands.PositionMode 

है और इस तरह के एक सुंदर और सुविधाजनक तरीके से आपकी समस्या नहीं सुलझती।

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

  • कोई संबंधित समस्या नहीं^_^