Я вызываю некоторые скрипты matlab из модели simulink, они используют assert(). Когда утверждение терпит неудачу, Simulink дает мне совершенно бесполезная утверждение, без каких-либо подробностей о том, какие подсистемы или скриптом утверждение происходивших в, не говоря уже номер строки:Как узнать, какое утверждение не выполнено в скриптах matlab, используемых моделью simulink?
An error occurred while running the simulation and the simulation was terminated
Caused by:
An error occurred during simulation of Model block '<blah>/Model'.
Assertion failed.
Однако, это только модель блока, он содержит много подсистем и блоков сценариев и прочее.
Любые подсказки о том, как найти, какие из моих многочисленных утверждений были вызваны?
Не уверен, что это важно, но все эти скрипты используют тег %#codegen
.
Вы можете не добавлять описательные сообщения в 'assert' вызовов? – excaza
См. Также: статический метод ['MException.last'] (https://www.mathworks.com/help/matlab/matlab_prog/capture-information-about-errors.html#bq9l5bs-1) или [' lasterror' ] (https://www.mathworks.com/help/matlab/ref/lasterror.html) – excaza
HA! Я всегда использовал утверждения Matlab, такие как «C», и, честно говоря, никогда не смотрел, были ли дополнительные аргументы, такие как «errmsg». Это полностью работает для меня! Если вы напишете ответ, я возьму его ... если не появится что-то лучшее. :) –