主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

数组格式化标志

MATLAB® Compiler™ 组件具有控制如何在两个方向上格式化数组数据的标志。通常,您应该按照列出的规则开发客户端代码,将 MATLAB 函数的预期输入和输出与编译的 COM 对象上的相应方法相匹配MATLAB 到 COM VARIANT 的转换规则COM VARIANT 到 MATLAB 的转换规则。在某些情况下这是不可能的,例如当现有的 MATLAB 代码与第三方产品(如 Excel® 结合使用时。

下表显示了数组格式标志。

数组格式化标志

标志 描述

InputArrayFormat

定义输入数组使用的数组格式规则。
输入数组是一个 VARIANT 数组,由客户端创建,作为输入参数发送到已编译 COM 对象上的方法调用。
此标志的有效值为 mwArrayFormatAsIsmwArrayFormatMatrixmwArrayFormatCell

mwArrayFormatAsIs 传递未改变的数组。

mwArrayFormatMatrix(默认)将所有数组格式化为矩阵。当输入 VARIANT 类型为 VT_ARRAY | type 时,其中 type 是任何数值类型,此标志不起作用。当输入 VARIANT 类型为 VT_VARIANT|VT_ARRAY 时,将检查数组中的 VARIANT。如果它们是单值并且类型同质,则会生成适当类型的 MATLAB 矩阵而不是元胞数组。

mwArrayFormatCell 将所有数组解释为 MATLAB 元胞数组。

InputArrayIndFlag

设置与 InputArrayFormat 标志一起使用的输入数组间接级别(仅适用于嵌套数组,即 VARIANTVARIANT 数组,它们本身也是数组)。此标志的默认值为零,它将 InputArrayFormat 标志应用于最外层数组。当此标志大于零(例如,等于 N)时,格式规则尝试将其自身应用于第 N 级嵌套。

OutputArrayFormat

定义输出数组使用的数组格式规则。输出数组是一个 MATLAB 数组,由已编译的 COM 对象创建,作为方法调用的输出参数发送到客户端。此标志的值 mwArrayFormatAsIsmwArrayFormatMatrixmwArrayFormatCell 导致与相应的 InputArrayFormat 标志值相同的行为。

OutputArrayIndFlag

(仅适用于嵌套元胞数组。)与 OutputArrayFormat 标志一起使用的输出数组间接级别。此标志的工作方式与 InputArrayIndFlag 完全相同。

AutoResizeOutput

(仅适用于 Excel 范围。)当方法调用的目标输出是 Excel 工作表中的单元格范围,并且在调用时不知道输出数组的大小和形状时,将此标志设置为 True 以调整每个 Excel 范围的大小以适合输出数组。

TransposeOutput

将此标志设置为 True 以转置输出参量。当从 Excel 调用 MATLAB Compiler 组件时很有用,其中 MATLAB 函数将输出作为行向量返回,而您希望数据以列的形式返回。