如何定位Matlab“冒号运算符用作索引需整数操作数”警告触发位置
Matlab无行号索引警告的定位方案
触发的警告内容:
Warning: Integer operands are required for colon operator when used as index.
你可以通过以下2种常用方案快速定位触发位置:
方案1:将指定警告转为错误,触发时自动中断
- 先手动触发一次警告后,在命令行执行以下命令获取警告唯一ID:
该警告对应的标准ID为[~, warn_id] = lastwarnMATLAB:colon:nonIntegerOperands - 执行命令将该警告转为错误级别:
warning('error', warn_id) - 重新运行代码,触发该问题时Matlab会直接抛出错误并停在触发行,同时展示完整调用栈、对应文件路径和行号。
- 先手动触发一次警告后,在命令行执行以下命令获取警告唯一ID:
方案2:开启警告堆栈追踪,无需转错误直接打印位置
运行代码前在命令行执行:warning on backtrace后续所有警告触发时都会自动打印关联的调用栈、文件和行号信息。
排查完成后可执行warning default all恢复警告的默认配置,避免影响其他代码的运行逻辑。
内容的提问来源于stack exchange,提问作者stack-delay
相关产品推荐
相关产品推荐

