在MATLAB中自定义显示对象属性

时间:2016-04-28 09:51:20

标签: matlab class

在MATLAB中,我想自定义一个对象,使其与数据类型相关的属性之一将显示一个值(原始数字值对应于类型的代码)及其字符串表示形式,如: 'dobule'(14)。在下面的代码中,我所讨论的属性称为UpdateDays: function () { $.ajax({ url: $("#numberOfDays").data("url"), data: { startDate: $("input[name=StartDate]").val(), endDate: $("input[name=EndDate]").val(), employeeId: $("#holiday-editor").data("employee"), isHalfDay: $("input[name=HalfDay]").val() }, method: "POST" }).success(function (response) { $("#numberOfDays").html(response); $("#Days").val(response); });

目前,我已经覆盖了datatype类,并以某种方式将其排序,但我必须使用字符串变量来合并数字和字符串,并形成组合输出。问题是MATLAB显示带引号的字符串:

matlab.mixin.CustomDisplay

这很好,但我不喜欢它。 MATLAB在显示此特定属性的字符串时是否会删除引号?

班级定义:

tidx = 
  idx with properties:

    dimensions: 3
      datatype: 'double (14)'
          size: [3 4 5]

1 个答案:

答案 0 :(得分:2)

可能为您的班级overloading the disp method

function str=disp(obj)
    p=properties(obj);
    for i=1:length(p),
        propval=get(obj,p);
        if isscalar(propval) % custom special format. 
        % Translation of original: sizestr = ...
                sprintf('%s (%d)', app.datatypenum2str(app.datatype), app.datatype);
            str{i}=sprintf('%s: %s (%d)',p{i}, datatypenum2str(propval), propval);
        else % standard display, mimicking getPropertyGroups@matlab.mixin.CustomDisplay
            str{i}=sprintf('%s: %s',p{i},disp(propval));
        end
    end
    str=sprintf('%s\n',str{:});

end

这样,您可以自定义属性在根目录中的显示方式/不使用matlab.mixin.util.PropertyGroup包装。