2012-01-12 2 views
2

есть функция ActiveX, которую я хочу вызвать из MATLAB, например.MATLAB ActiveX необязательные аргументы

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 и оставить все остальные по умолчанию. Есть ли возможность указать отсутствующие или значения по умолчанию в вызове функции ActiveX, вызванном через MATLAB?!?

В 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

Согласно документации Matlab, вы можете пропустить optional input arguments, используя пустой массив вместо (т.е. []).

Так это будет выглядеть так:

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

Будет ли он таким же, как значение по умолчанию? ... Я попробую. Благодарю. – HeinrichStack

0

Я использую NaN по умолчанию/необязательных параметров, и это работает для меня. Таким образом, моя версия будет:

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

Честно говоря, я думаю, что оба будут работать нормально. Надеюсь это поможет!

Смежные вопросы