Найдите местоположения начала и конец кода MATLAB привлеченными в генерацию кода
[
возвращает линию и индексы столбца первого и последнего символа кода MATLAB, который вызвал сообщение генерации кода, описанное startLoc
,endLoc
] = getLineColumn(obj_message
)obj_message
.
Создайте информационный объект отчета для процесса генерации кода. Вы затем определяете местоположение функции MATLAB, привлеченной в генерацию кода в файле, содержащем эту функцию.
Задайте функцию MATLAB foo
:
function [b,c] = foo(a) b = svd(a,0); c = bar(a); end function c = bar(a) c = inv(a); end
Сгенерируйте статическую библиотеку C для foo
. Задайте вход как скаляр строки. Экспорт генерация кода сообщает информацию переменной info
в вашем основном рабочем пространстве MATLAB.
codegen -config:lib foo -args {"A string scalar"} -reportinfo info
Генерация кода перестала работать, потому что скаляр строки не является допустимым входом для функций MATLAB svd
и inv
. Генератор кода создает информационный объект отчета info
в основном рабочем пространстве MATLAB.
Свойство info.Functions
двумерный массив. info.Functions(1)
содержит описание функции MATLAB foo
. info.Functions(2)
содержит описание функции MATLAB bar
.
Вручную смотреть функциональный bar
, сначала отобразите текст файла, содержащего bar
.
info.Functions(2).File.Text
'function [b,c] = foo(a) b = svd(a,0); c = bar(a); end function c = bar(a) c = inv(a); end '
Используйте getLineColumn
определять местоположение начала и конца функционального bar
в этом тексте. Выход startLoc
содержит линию и индексы столбца первого символа bar
. Выход endLoc
содержит линию и индексы столбца последнего знака bar
.
[startLoc,endLoc]=getLineColumn(info.Functions(2))
startLoc = struct with fields: Line: 6 Column: 1 endLoc = struct with fields: Line: 8 Column: 3
Создайте информационный объект отчета для процесса генерации кода, который перестал работать. Вы затем определяете местоположение части кода MATLAB, который вызвал сообщение об ошибке.
Задайте функцию MATLAB foo
:
function b = foo(a) b = svd(a,0); end
Сгенерируйте статическую библиотеку C для foo
. Задайте вход как скаляр строки. Экспорт генерация кода сообщает информацию переменной info
в вашем основном рабочем пространстве MATLAB.
codegen -config:lib foo -args {"A string scalar"} -reportinfo info
Генерация кода перестала работать, потому что скаляр строки не является допустимым входом для функции MATLAB svd
. Генератор кода создает информационный объект отчета info
в основном рабочем пространстве MATLAB.
Свойство info.Messages
двумерный массив, содержащий описания двух сообщений генерации кода. Смотрите описание первого сообщения.
info.Messages(1)
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, который вызвал это сообщение об ошибке, сначала отобразите текст файла, сопоставленного с этим сообщением об ошибке.
info.Messages(1).File.Text
'function b = foo(a) b = svd(a,0); end '
Используйте getLineColumn
определять местоположение начала и конца части кода, который вызвал сообщение об ошибке. Выход startLoc
содержит линию и индексы столбца первого символа сегмента кода. Выход endLoc
содержит линию и индексы столбца последнего знака сегмента кода.
[startLoc,endLoc] = getLineColumn(info.messages(1))
startLoc = struct with fields: Line: 2 Column: 5 endLoc = struct with fields: Line: 2 Column: 12
'svd(a,0)'
в тексте foo.m
.obj
— Функция MATLAB описания объекта или метод, привлеченный в генерацию кодаОбъект, описывающий функцию MATLAB или метод в классе MATLAB, который привлечен в генерацию кода, задал как одно из следующего:
coder.Function
объект для описания функции. Смотрите кодер. Функциональные Свойства.
coder.Method
объект для описания метода. Смотрите кодер. Свойства метода.
obj_message
— Сообщение об ошибке генерации кода описания объектаcoder.Message
объект, описывающий ошибку, предупреждение или информационное сообщение, производится во время генерации кода из кода MATLAB. Смотрите кодер. Передайте Свойства.
startLoc
— Линия и индексы столбца первого символа кода MATLABМассив структур с двумя полями: Line
и Column
.
startLoc.Line
индекс линии первого символа кода MATLAB в тексте файла, содержащего код.
startLoc.Column
индекс столбца первого символа кода MATLAB в тексте файла, содержащего код.
endLoc
— Линия и индексы столбца последнего знака кода MATLABМассив структур с двумя полями: Line
и Column
.
endLoc.Line
индекс линии последнего знака кода MATLAB в тексте файла, содержащего код.
endLoc.Column
индекс столбца последнего знака кода MATLAB в тексте файла, содержащего код.
кодер. Функциональные Свойства | кодер. Передайте Свойства | кодер. Свойства метода
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.