String 用Matlab中的新行替换字符串中的\n

String 用Matlab中的新行替换字符串中的\n,string,matlab,newline,string-formatting,cell-array,String,Matlab,Newline,String Formatting,Cell Array,我正试图在Matlab中将分隔每一行的字符串单元格数组合并为一个字符串。 以下方法合并字符串,但最终字符串包含\n而不是新行: function str = toString(self) % some not important logic that creates cell array called strings % ... str = ''; for i = 1 : 9 str = strcat(str, str

我正试图在Matlab中将分隔每一行的字符串单元格数组合并为一个字符串。 以下方法合并字符串,但最终字符串包含\n而不是新行:

function str = toString(self)
    % some not important logic that creates cell array called strings
    % ...
    str = '';
    for i = 1 : 9               
        str = strcat(str, strings(i), '\n');
    end  
end
它返回:
'111\n 111\n 111\n333666444555\n333666444555\n333666444555\n 222\n 222\n 222\n'

当我添加
str=sprintf(str)在方法结束之前,它返回无效的格式错误。但是,当我写入Matlab命令窗口
sprintf('111\n 111\n 111\n 33366644455\n 333666444555\n 333666444555\n 222\n 222\n')返回格式化字符串,没有任何错误


有人知道会有什么问题吗?为什么它在命令窗口中工作而在.m文件中不工作?

sprintf将在元素或单元格数组上循环:

sprintf('%s\n', strings{:})
循环的问题是“\n”是2个元素的字符数组,但您需要的是sprintf(“\n”)