String Matlab中的类与switch语句

String Matlab中的类与switch语句,string,matlab,class,oop,switch-statement,String,Matlab,Class,Oop,Switch Statement,我在Matlab语言中使用OOP概念,我有一个包含不同案例的类,如何使用类和对象使它们高效,以便在简单的Matlab代码中调用类的对象。如果调用类,则可以访问对象或简单变量。 我如何减少大小写和对象可以只输入一个数字就分配字符串 我的代码: classdef myClass properties Obj1; %..... other objects choice; end properties (Acc

我在Matlab语言中使用OOP概念,我有一个包含不同案例的类,如何使用类和对象使它们高效,以便在简单的Matlab代码中调用类的对象。如果调用类,则可以访问对象或简单变量。 我如何减少大小写和对象可以只输入一个数字就分配字符串

我的代码:

classdef myClass
        properties
           Obj1; %..... other objects
            choice;
        end
        properties (Access=private)
        num   
    end
        methods
            function obj = myClass(num)
                obj.num = num;
            end
            function Choice(obj)
               switch choice
case 1
obj.Obj1 = 'Obj1';
case 2
obj.Obj1 = 'Obj1';
obj.Obj2 = 'Obj2';
case 3
obj.Obj1 = 'Obj1';
obj.Obj2 = 'Obj2';
obj.Obj3 = 'Obj3';
%similarly 100 cases
            end
        end
         methods (Static)
        function myStaticMethod
            disp(obj1); %.... other objects
return; %objects return
        end
    end
end

可以为每个对象使用对象数组,而不是单独的属性。然后,可以使用数组索引向该属性添加/删除对象:

properties
   Objects = []
end
您可以访问该属性并对其进行索引:

obj.Objects(k) = ...
您可以使用for循环来显示:

for k = 1:length(obj.Objects)
   disp(obj.Objects(k))
end

但是如何分配“obj.Obj1='Obj1';”以便类返回赋值。我建议不要使用
obj.Obj1
。如果
obj.Objects
是一个数组,则始终可以使用
obj.Objects[1:choice]
返回它的子集。您可能需要阅读更多有关MATLAB Array.in properties的内容。在properties中,obj.Objects使用“.”时出现语法错误。很抱歉,我想将
Objects
定义为属性。我已经更新了答案。它无法从索引文件访问,给出了错误未定义变量“obj”或类“obj.Objects”。