在类属性中存储数据

时间:2018-08-17 00:02:15

标签: matlab

我对MATLAB还是相当陌生,并且刚刚开始使用类。我创建了一个名为TestData的对象,它具有四个属性。这些属性之一是metaData。我还需要使用一种名为setMetaData的方法,该方法会将元数据添加到对象中。

现在,metaData属性应该是名称-值对的Nx2单元数组。我很难使它起作用。我认为我需要使用该方法来生成一个数组,然后将该数组放入属性中,对吗?换句话说,我还没有发现任何让我相信该属性本身可以在方法提出要求之前作为数组进行“类型转换”的方法。

第二,我只是不知道如何将字符串(名称/值对的名称)放入单个数组列中。以下是我编写的一些代码,但是请记住,我对此还很陌生!

感谢您提前获得的所有帮助。

classdef TestData
properties
    metaData   %stores meta data in Nx2 array
    data       %stores data in PxQ array
    colLabels  %labels columns
    colUnits   %provides units
end
methods
    function metaArray = setMetaData(name, value)
        metaArray = TestData;


    end


end

结束

1 个答案:

答案 0 :(得分:0)

尝试类似这样的类定义;

classdef TestData

properties
    metaData   %stores meta data in Nx2 array
    data       %stores data in PxQ array
    colLabels  %labels columns
    colUnits   %provides units
end
methods

    %Class constructor 
    function this = TestData()
        this.metaData=[];
    end

    function this = setMetaData(this, name, value)     
        N  = size(this.metaData,1) + 1;
        this.metaData{N,1} = name;
        this.metaData{N,2} = value;
    end
end

end

然后尝试上课...

myTestData = TestData;

myTestData = myTestData.setMetaData('A', 123);
myTestData = myTestData.setMetaData('B', 567);

myTestData.metaData