Когда клиент MATLAB® отправляет команду с недействительным аргументом к серверному приложению COM, сервер передает сообщение об ошибке обратно в следующем формате.
??? Error: Type mismatch, argument n.
Если вы не используете точечный формат синтаксиса, будьте тщательной интерпретацией номера аргумента в этом сообщении.
Например, с помощью точечного синтаксиса, если вы вводите:
handle.PutFullMatrix('a','base',7,[5 8]);
Отображения MATLAB:
??? Error: Type mismatch, argument 3.
В этом случае аргумент, 7
, недопустим, потому что PutFullMatrix
ожидает, что третий аргумент будет типом данных массива, не скаляром. В этом примере сообщение об ошибке идентифицирует 7
как argument 3
.
Однако, если вы используете синтаксис:
PutFullMatrix(handle,'a','base',7,[5 8]);
Отображения MATLAB:
??? Error: Type mismatch, argument 3.
В этом вызове функции PutFullMatrix
7
является аргументом четыре. Однако сервер COM не получает первый аргумент. Аргумент handle
просто идентифицирует сервер. Это не становится переданным серверу. Сервер читает 'a'
в качестве первого аргумента, и недействительного аргумента, 7
, как третье.