Matlab不提供通用的多态对象显示函数,如Java的toString()方法。这使得编写能够简洁地调试和显示对象的通用代码变得很困难,这对于日志记录、错误消息和控制台上的交互非常有用。
Dispstr API为通用、多态、可定制的对象显示提供了一个简明的API,并为Matlab附带的主要类型提供了实现。
Dispstr仅提供少数函数和类:
dispstr()和dispstrs()
预打印()
sprintfds()、fprintfds()、errords()和warningds()
dispstrlib.displaybable和dispstrlib.displaybelHandle
dispstr()和disptrs()是通用的对象显示函数,用户定义的类可以覆盖这些函数以自定义其显示。prettyprint()是一个用于转储数组细节的函数,它尊重dispstr/dispstrs。sprintfds()和fprintfds()允许您执行尊重dispstr()的格式化输出。errords()和warningds()是error()和warning()的变体,它们遵循dispstr格式。@dispstrlib.Displayable是一种方便的混合,它使编写实现dispstr/dispstrs的类变得更容易。
使用此库时,用户定义的对象现在可以显示在具有有意义的数据表示的结构和表中,而不是仅显示“<1-by-1 SomeClass>”,当对象卡在单元格字段或表变量中时,Matlab的默认disp()会这样做。
我认为这个库的主要价值在于建立函数约定和签名,而不是实现代码本身。
要使用Dispstr,请在Matlab路径上获取它,然后在您想要自定义显示的类上定义Dispstr()和dispstrs()方法。(或者让它们从@dispstrlib.displaybable继承,只定义Dispstr_scalar()
该项目的主页位于GitHub上的https://github.com/apjanke/dispstr.
引用为
安德鲁·詹克(2021年)。dispstr(https://github.com/janklab/dispstr),GitHub。恢复.