Создайте информационный объект отчета для неудачного процесса генерации кода. Затем вы найдете часть кода 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
.