创建表格后,' VariablesNames'在每列的顶部自动加粗。当我在日记文件中检查表时,每个列名都被HTML样式的强标记包围。是否有一行代码可用于防止自动加粗?
关于表格标题,我对于fontweights的MATLAB文档没有运气:https://www.mathworks.com/help/matlab/ref/matlab.ui.control.table-properties.html他们提到字体权重,但他们没有提供如何实现的示例代码。(罢工文本不是控制台输出的相关文档。)
以下是我用来创建表格的命令:X = array2table(B,' VariableNames',{' y',' One' ;,'两个''三'});由于某种原因,列标题大胆出现。值得注意的是B是5x4矩阵。
答案 0 :(得分:4)
我相信你正在混淆:你引用的文档页面是指在Matlab GUI中显示的表格(使用uitable
函数),其FontWeight属性是指内部数据的字体权重该表中显示的元素。
这显然与您实际执行的操作完全无关,即使用非GUI数据表,例如使用table
函数创建的数据表。这样的表是一个使用disp
函数的内部重载的对象,以便在Matlab控制台(命令窗口)中显示表内容。这个重载的disp
函数使用HTML< Strong>显示表格标题。标签。您可以在 matlabroot/toolbox/matlab/datatypes/@tabular/disp.m 中看到完整的源代码,以及在第45行附近添加强标记的部分。
简而言之,如果您希望表输出不在其标题中使用强标记,则需要修改该文件,或者创建自己的继承 {的类。 {1}}以任何你想要的方式对table
tablular
函数进行类和重载。
附录:我刚刚发现了一种更简单的方法:
disp
答案 1 :(得分:2)
简而言之,如果您希望表输出不使用强标记 标题,您需要修改该文件,或创建自己的类 继承表类并重载disp函数 无论你想做什么。
不幸的是,表类是密封的,因此子类不能从它继承。
Error using unbold_table
Class 'table' is Sealed and may not be used as a superclass.
您可以随时按照Yair的建议进入源代码并进行编辑。
答案 2 :(得分:2)
正如@YairAltman所提到的,粗体是由disp
类的table
方法完成的。
(实际上,情况并非如此:在旧版本中,它由disp
类的table
方法完成,在更新版本中,它由disp
方法完成tabular
类的table
超类。
Yair提出了两个想法:
首先,您可以创建自己的继承自table
的类,并实现您自己的disp
版本。不幸的是,由于table
是密封的,因此无效,因此您无法继承它。 (当然,如果您对修改MATLAB源代码感到满意,可以开启它;但我不建议您尝试这样做,但是出于很好的理由它们已将其密封了。)
其次,您可以修改disp
方法的源代码,以便它不会进行粗体化。这样可行,但您可能不想弄乱MATLAB源代码(有些人可能会以一种只读的方式安装IT)。
但是,disp
/ table
的{{1}}方法有一些未记录的功能,可以在不修改任何内容的情况下帮助您:如果您传递一个额外的参数{ {1}},您可以关闭粗体。
tabular
第二个参数的默认值为disp
,因此要实现此目的,您需要使用第二个参数>> a = table(1,2);
>> disp(a) % the following Var1 and Var2 are bold
Var1 Var2
____ ____
1 2
>> disp(a,false) % the following Var1 and Var2 are not bold
Var1 Var2
____ ____
1 2
显式调用true
。