MATLAB ActiveX可选参数

时间:2012-01-12 13:47:04

标签: matlab activex optional-parameters

有一个ActiveX函数,我想从MATLAB调用,例如

PrintOut([Background], [Append], [Range], [OutputFileName], [From], [To], [Item], [Copies],
 [Pages], [PageType], [PrintToFile], [Collate], [FileName], [ActivePrinterMacGX],
 [ManualDuplexPrint], [PrintZoomColumn], [PrintZoomRow], [PrintZoomPaperWidth],
 [PrintZoomPaperHeight])

并使用如下:

hdlActiveX = actxserver('Word.Application');
hdlActiveX.PrintOut(opt args, needed args, opt opts, needed args);

PrintOut函数调用中的所有参数都是可选参数。但是,对于特定情况,我需要指定参数#3,#9,#10并将所有其他参数保留为默认值。是否有可能在通过MATLAB调用的ActiveX函数调用中指定缺失值或默认值?!?

在C#中,这可以这样做,但在Matlab ActiveX中......?!?

this.PrintOut(ref Background, ref missing, ref Range, ref missing,
    ref missing, ref missing, ref missing, ref Copies,
    ref missing, ref PageType, ref PrintToFile, ref Collate,
    ref missing, ref ManualDuplexPrint, ref PrintZoomColumn,
    ref PrintZoomRow, ref missing, ref missing);

此致

2 个答案:

答案 0 :(得分:2)

根据Matlab文档,您可以使用空数组(即[])跳过optional input arguments

所以这看起来像:

hdlActiveX.PrintOut([],needed args,[],needed args);

答案 1 :(得分:0)

我使用NaN作为默认/可选参数,它适用于我。所以我的版本是:

hdlActiveX.PrintOut(NaN, needed args, NaN, needed args);

老实说,我认为两者都可以。希望这有帮助!