Matlab:理解一段代码

时间:2014-01-17 15:58:17

标签: matlab

我有一个用于打印单元格数组的matlab代码。矩阵的大小为50x13。

第1行是列名。

第1列是日期,其余列是数字。

代码中定义的dateformat是:

dFormat          =   struct;
dFormat.Style    =   struct( 'NumberFormat', '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)' );
dFormat.Font     =   struct( 'Size', 8 );

有人可以解释一下dFormat.Style代码的含义吗?

由于

2 个答案:

答案 0 :(得分:1)

第一行创建一个名为dFormat的空struct(没有字段的结构)。结构可以包含其中一个字段中的任何内容,包括另一个结构。第二行向'Style'结构添加一个名为dFormat的字段,并将其设置为另一个带有'NumberFormat'字段的结构。 'NumberFormat'字段设置为等于该长字符串。你现在有了结构结构。第三行与第二行类似。

请注意,除非dFormat已经存在,否则第一行不是必需的,并且需要将其作为dFormat.Style“归零”并隐式创建它。但是,在某些情况下,使用struct函数可以使代码更具可读性,因为对象对访问方法和属性使用类似的表示法。换句话说,您的所有代码都可以替换为:

dFormat.Style.NumberFormat = '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)';
dFormat.Font.Size = 8;

有关详细信息,请参阅MathWorks中的this video以及此list of helpful structure functions and examples

答案 1 :(得分:0)

@horchler已经详细阐述了结构,但我想你可能实际上对这个结构Style字段的内容更感兴趣。

如果您只对_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)感兴趣,那么MATLAB与我的关系并不像。

我最好的猜测是,此代码用于以后提供其他程序,以便构建excel文件。