Matlab 中的类和 switch 语句
Posted
技术标签:
【中文标题】Matlab 中的类和 switch 语句【英文标题】:Classes in Matlab and switch statement 【发布时间】:2014-03-23 21:54:50 【问题描述】:我在 Matlab 的语言中使用 OOP 概念,我有一个包含不同案例的类,如何使用 类和对象使它们高效 em>,以便在简单的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
【问题讨论】:
【参考方案1】:您可以使用对象数组,而不是为每个对象使用单独的属性。然后,您可以使用数组索引向该属性添加/删除对象:
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 数组的信息。
在属性中,obj.Objects 使用 '.' 有语法错误
抱歉,我的意思是将Objects
定义为属性。我已经更新了答案。
无法从索引文件访问,报错 Undefined variable "obj" or class "obj.Objects"。以上是关于Matlab 中的类和 switch 语句的主要内容,如果未能解决你的问题,请参考以下文章