在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]
答案 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包装。