You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MException转换为单行字符串并去除特殊换行符?

解决MATLAB中MException报告换行符无法移除的问题

我来帮你搞定这个头疼的换行符问题!你看到的↵其实只是MATLAB显示出来的换行可视化符号,实际存储在字符串里的是ASCII控制字符(比如回车\r(ASCII 13)或者换行\n(ASCII 10),Windows系统下通常是两者的组合\r\n),所以直接替换↵肯定没用~

具体解决方案

方法1:用正则表达式批量替换所有换行相关字符

正则表达式可以一次性匹配回车和换行符,不管是单独出现还是组合出现,都能彻底移除:

try
    error("rand Error")
catch err
    a = string(getReport(err, 'extended','hyperlinks', 'off'));
    % 移除所有换行/回车控制字符
    a_clean = regexprep(a, '[\r\n]', '');
end

方法2:直接替换对应的ASCII控制字符

如果你想更明确地指定要移除的字符,可以直接用char()生成对应的控制字符:

try
    error("rand Error")
catch err
    a = string(getReport(err, 'extended','hyperlinks', 'off'));
    % 先替换Windows换行符组合,再单独处理剩余的单个控制字符
    a_clean = strrep(a, [char(13) char(10)], '');
    a_clean = strrep(a_clean, char(13), '');
    a_clean = strrep(a_clean, char(10), '');
end

或者用erase一次性处理多个字符:

a_clean = erase(a, [char(10), char(13)]);

先确认实际的换行字符(可选)

如果你不确定字符串里到底是哪种控制字符,可以先把字符串转成ASCII码查看:

disp(double(a));

输出里的10对应\n,13对应\r,这样就能精准处理啦。

内容的提问来源于stack exchange,提问作者kkawabat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:33:45