MATLAB声明自己的数据类型

时间:2015-03-05 14:43:21

标签: matlab

与C一样,我想创建一个自己的数据类型,所以我有一个文件声明这种类型,以后可以将它们用作掩码。我想做的是这样的事情:

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那样我可以用作系统范围原型的东西?在函数中执行此操作不起作用,因为结构只是局部变量....

1 个答案:

答案 0 :(得分:2)

这可以满足您的需求吗?

function out = param
out=struct(...
    'argument1',[],...
    'argument2',[],...
    'argument3',[]);
end

>> a = param
a = 
    argument1: []
    argument2: []
    argument3: []
>> b = param
b = 
    argument1: []
    argument2: []
    argument3: []

或者你可以创建一个简单的对象,如果你想限制只有名为argument1argument2argument3的字段,可能会更好:

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: []