Создайте информационный объект отчета для неудачного процесса создания кода. Затем можно найти часть кода MATLAB, вызвавшую сообщение об ошибке.
Определение функции MATLAB foo:
Создание статической библиотеки C для foo. Укажите входные данные как строковый скаляр. Экспорт информации отчета о создании кода в переменную info в базовой рабочей области MATLAB.
Не удалось создать код, так как строковый скаляр не является допустимым входом для функции MATLAB svd. Генератор кода создает информационный объект отчета info в базовой рабочей области MATLAB.
Собственность info.Messages - двумерный массив, содержащий описания двух сообщений генерации кода. Проверьте описание первого сообщения.
Message with properties:
Identifier: 'Coder:toolbox:unsupportedClass'
Type: 'Error'
Text: 'Function 'svd' is not defined for values of class 'string'.'
File: [1×1 coder.CodeFile]
StartIndex: 26
EndIndex: 33Для проверки вручную сегмента кода MATLAB, вызвавшего это сообщение об ошибке, сначала просмотрите текст файла, связанного с этим сообщением об ошибке.
'function b = foo(a)
b = svd(a,0);
end
'
Использовать getLineColumn для поиска начала и конца части кода, вызвавшей сообщение об ошибке. Продукция startLoc содержит индексы строк и столбцов первого символа сегмента кода. Продукция endLoc содержит индексы строки и столбца последнего символа сегмента кода.
startLoc =
struct with fields:
Line: 2
Column: 5
endLoc =
struct with fields:
Line: 2
Column: 12Эти местоположения соответствуют началу и концу вызова функции
'svd(a,0)' в тексте
foo.m.