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