Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在MATLAB对象中显示枚举值

如何在MATLAB对象中显示枚举值
EN

Stack Overflow用户
提问于 2014-03-03 16:30:11
回答 1查看 993关注 0票数 7

给定以下两个类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
classdef EnumClass

    enumeration
        enumVal1
        enumVal2
    end
end


classdef EnumDisplay

    properties
        enumValue = EnumClass.enumVal1
        numberValue = 1
    end
end

显示EnumClass时,将显示值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>> E = EnumClass.enumVal1

E = 

    enumVal1

但在命令窗口中显示EnumDisplay时,枚举值将被抑制,仅显示数组大小和类。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>> C = EnumDisplay()

C =

  EnumDisplay with properties:

      enumValue: [1x1 EnumClass]
    numberValue: 1

使枚举值显示在类特性列表中的最简单方法是什么。也就是说,有没有一种简单而通用的方法来显示类,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>> C = EnumDisplay()

C =

  EnumDisplay with properties:

      enumValue: enumVal1
    numberValue: 1

我怀疑这与从某个地方的matlab.mixin.CustomDisplay类继承有关,但我希望它尽可能通用,以限制我需要为每个枚举类和/或在属性中具有枚举值的每个类执行的代码量。

部分解

我能够找出这个问题的部分解决方案,但它不是很令人满意。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
classdef EnumDisplay < matlab.mixin.CustomDisplay

    properties
        enumValue = EnumClass.enumVal1
        numberValue = 1
    end

    methods (Access = protected)
        function groups = getPropertyGroups(This)
            groups = getPropertyGroups@matlab.mixin.CustomDisplay(This);
            groups.PropertyList.enumValue = char(This.enumValue);
        end
    end
end

现在显示如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>> C = EnumDisplay()

C = 

  EnumDisplay with properties:

      enumValue: 'enumVal1'
    numberValue: 1

这就差不多了,但还不完全是。我不希望枚举值包含在引号中。

EN

回答 1

Stack Overflow用户

发布于 2016-01-31 09:02:12

好吧,那么..。这不是最优雅的方法--当然不像使用matlab.mixin.CustomDisplay那么优雅--但一种可能的方法是尝试自己复制该功能,以提供更多的控制。这是我在渡轮上一起黑出来的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
classdef EnumDisplay

    properties
        enumValue = EnumClass.enumVal1
        numberValue = 1
    end

    methods
        function disp(This)
            cl = class(This) ;
            fprintf('  <a href="matlab:helpPopup %s">%s</a> with properties: \n\n',cl,cl) ;
            prop = properties(This) ;
            len = max(cellfun(@length,prop)) ;

            for ii = 1:numel(prop)
                if isnumeric(This.(prop{ii}))
                    fmt = '%g' ;
                else
                    fmt = '%s' ;
                end
                filler = char(repmat(32,1,4+len-length(prop{ii}))) ;
                fprintf('%s%s: ',filler,prop{ii}) ;
                fprintf(sprintf('%s \n',fmt),char(This.(prop{ii}))) ;
            end
        end
    end
end

结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>> C = EnumDisplay()

C = 

  EnumDisplay with properties: 

      enumValue: enumVal1 
    numberValue: 1 

唯一需要注意的是,这可能不是完全通用的,因为我可能没有适当地涵盖所有可能的格式fmt。但如果你真的绝望了,也许这样的方法可以奏效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22152029

复制
相关文章
Java中怎样由枚举常量的ordinal值获得枚举常量对象
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方
全栈程序员站长
2022/07/14
1.8K0
matlab中0/0_matlab样条插值
确定数组a的第i个元素是否不等于0。如果不等于0,则结果为true,否则为false。
全栈程序员站长
2022/09/29
8010
matlab中0/0_matlab样条插值
matlab中如何求插值点,MATLAB插值「建议收藏」
插值就是在已知数据之间计算估计值的过程,是一种实用的数值方法,是函数逼近的重要方法。在信号处理和图形分析中,插值运算的应用较为广泛,MATLAB提供了多种插值函数,可以满足不同的需求。
全栈程序员站长
2022/09/05
3.4K0
PropertyGrid中的枚举显示为中文
本文转载:http://www.cnblogs.com/yank/archive/2011/09/17/2179598.html
跟着阿笨一起玩NET
2018/09/18
1.1K0
PropertyGrid中的枚举显示为中文
C# 中的“智能枚举”:如何在枚举中增加行为
在这个示例中,我们定义了一个名为 Weekday 的枚举,其中包括每个星期的日子。然后在 Main 方法中,我们将 today 变量设置为 Tuesday,并使用 ToString() 方法将其转换为字符串。
郑子铭
2023/08/30
3180
C# 中的“智能枚举”:如何在枚举中增加行为
[C#] winform显示对象的属性和值
一个电能表<见楼下>实体类大致如下所示: public class ElectricMeterVariable { /// <summary> /// 相电压数据,单位 0.1V /// </summary> [Category("相电压数据")] [Description("相电压数据,单位 0.1V")] public string Ua { get; set; } ///
科控物联
2022/03/29
3K0
[C#] winform显示对象的属性和值
【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )
对象的句柄值 , 类似于编程时的引用 , 将对象的句柄值赋值给变量后 , 该变量就可以代表指定的绘图对象 ;
韩曙亮
2023/03/29
6.7K0
【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )
怎么获取枚举的值_枚举是值类型吗
最近在做一个学校的系统,其中用到一些枚举,可是在显示下拉列表时要绑定枚举的描述及其枚举值时就只一个一个的默认设死,这样不灵活。有没有其快捷方法?搜了下百度很多相关资料有了些许眉目,代码如下
全栈程序员站长
2022/09/20
4.5K0
matlab 插值出错,MATLAB插值问题
,称F(x)为f(x)在区间[a,b]上的插值函数,称(xi, yi)为插值节点。若F(x)为多项式,称为多项式插值(或代数插值) ;常用的代数插值方法有:拉格朗日插值,牛顿插值。
全栈程序员站长
2022/09/05
1.2K0
带描述枚举值获取枚举实例
import java.util.LinkedHashMap; /** * 是否 * 1-是 0-否 * <br>表.字段 * <br>table.column */ public enum YesOrNoEnum { /** 1-是 */ YES("1", "是"), /** 0-否 */ NO("0", "否"), ; public final String value; public final String desc;
林万程
2020/06/02
1.5K0
再谈BOM和DOM(6):dom对象及event对象位值计算—如offsetX/Top,clentX
总是会被javascript的event对象的clientX,offsetX,screenX,pageX 弄得头晕,于是决定做个图来区分一下(画得我手那个酸呀。。。。)
周陆军
2021/07/13
1.5K0
如何在VimVi中显示行号
Vim/Vi是许多软件开发人员和Linux系统管理员首选的文本编辑器。 默认情况下,Vim不显示行号,但可以轻松打开它们。Vim支持三种行编号模式,可帮助你浏览文件。除了标准的绝对行编号之外,Vim还支持相对行和混合行编号模式。 绝对行号 绝对行号是标准行号,它在每行文本旁边显示适当的行号。 要激活行编号,请设置数字标志: 按Esc键切换到命令模式。 按:(冒号),光标将移动到屏幕的左下角。输入set number或set nu,然后按Enter。 :set number 行号将显示在屏幕的左侧: 要禁用
入门笔记
2022/06/02
3.6K0
如何在MATLAB中实现各种特殊上标?
本文只针对特殊上标情况,上下角标可由符号“^”或者“_”实现,故不在本文讨论范围之内,特殊上标的示例如下图所示。
巴山学长
2021/07/30
4.5K0
如何在js中创建对象
七夕临近了,没有对象的来创建一个吧 使用对象字面量: const o = { name: "zehan", greeting() { return `Hi, 我是${this.name}`; } }; o.greeting(); // "Hi, zehan" 使用构造函数: function Person(name) { this.name = name; } Person.prototype.greeting = function () { return `Hi, 我是
ZEHAN
2020/09/23
7.6K0
Go 100 mistakes之如何正确设置枚举值中的零值
我们知道,在Go中会给定义的变量一个默认值,比如int类型的变量默认值是0。我们在定义枚举值时,往往也会从0值开始定义。本文就解释如何区分是显示指定了变量的0值还是因为确实字段而得到的默认值。
Go学堂
2023/01/31
3.8K0
matlab插值函数的作用,matlab 插值函数[通俗易懂]
MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,’method’)
全栈程序员站长
2022/09/05
1.3K0
js对象中什么是可枚举性(enumerable)?[通俗易懂]
可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for…in循环之中。具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性。 * for..in循环 * Object.keys方法 * JSON.stringify方法
全栈程序员站长
2022/11/17
1.6K0
Go中枚举值有效性检查最佳实践
由于Go中的枚举是使用类型别名构造的,因此我们无法实现对枚举值的限制。例如,如果我们接收到到以下JSON内容将会发生什么?
Go学堂
2023/01/31
1.5K0
matlab插值计算
插值方法有如下: method=‘nearest’,‘linear’,‘spline’,‘pchip’,‘cubic’ 比如使用三次条样插值spline,则
全栈程序员站长
2022/09/05
1.1K0
点击加载更多

相似问题

如何通过Javascript对象(如HTMLElement )枚举?

13

如何在MATLAB中获取枚举名称

20

如何在MATLAB中创建枚举类型?

100

如何在组合框中显示枚举值?

20

如何在多个连接方案中显示枚举值?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文