MATLAB声明自己的数据类型
像在C中一样,我想创建一个自己的数据类型,所以我有一个文件声明这个类型,以后可以将它们用作掩码。我想做的是这样的:MATLAB声明自己的数据类型,matlab,Matlab,像在C中一样,我想创建一个自己的数据类型,所以我有一个文件声明这个类型,以后可以将它们用作掩码。我想做的是这样的: function declareParameter() param1=struct(... 'argument_a1',[],... 'argument_a2',[],... 'argument_a3',[]); param2=struct(... 'argument_b1',[],... 'argument_b2',[]); param
function declareParameter()
param1=struct(...
'argument_a1',[],...
'argument_a2',[],...
'argument_a3',[]);
param2=struct(...
'argument_b1',[],...
'argument_b2',[]);
param2=struct(...
'argument_c1',[],...
'argument_c2',[],...
'argument_c3',[],...
'argument_c4',[]);
end
所以我有param,我可以用它作为“我的自定义数据类型”。在我的代码后期,我只想写
p=param1;
p.argument_a1=....;
o=param2;
o.argument_b2=....;
n=param3;
n.argument_c1=...;
n.argument_c4=...;
是否有可能定义类似于
param
的东西,我可以将其用作我的系统范围的原型?在函数中执行此操作不起作用,因为这样结构仅是局部变量。…这是否满足您的需要
function out = param
out=struct(...
'argument1',[],...
'argument2',[],...
'argument3',[]);
end
>> a = param
a =
argument1: []
argument2: []
argument3: []
>> b = param
b =
argument1: []
argument2: []
argument3: []
或者,您可以创建一个简单的对象,如果您希望将内容限制为仅包含名为argument1
、argument2
和argument3
的字段,则该对象可能会更好:
classdef param
properties
argument1
argument2
argument3
end
end
>> a = param
a =
param with properties:
argument1: []
argument2: []
argument3: []
>> b = param
b =
param with properties:
argument1: []
argument2: []
argument3: []
Matlab支持面向对象编程,如果这是你的意思的话。此外,由于它是动态键入的,所以您可以随时执行
p.argument1
。当然,但我希望,p包含param
中定义的所有文件,即使它们是空的(因为它们稍后会被填充或其他内容)。因此,我不仅可以使用p.argument1=…
Matlab具有struct
。您甚至不需要声明p
;只需在fly上添加字段问题是,我们是一个团队,正在做一些事情,我想为所有人建立一个基本结构。因此,我想定义一个基本结构,每个人都可以使用,而且我必须保证,每个人都可以使用结构字段的预定义摘要。因此,动态添加字段不是一个好主意……如果您希望参数列表始终保持不变(列表,而不是它们的值),并防止用户无意中删除或覆盖,那么创建一个matlab自定义类是您最好的选择。首先感谢您的回复,但可能我的问题没有得到很好的说明。我想定义更多的“全局”结构,每个结构都有不同的字段。我会详细说明我的问题。。。