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

时间:2011-10-30 13:36:17

标签: 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, 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\n333666444555\n333666444555\n333666444555\n 222\n 222\n 222\n');时,它返回格式化的字符串,没有任何错误。

任何人都知道可能会出现什么问题?为什么它在命令窗口中工作但不在.m文件中?

1 个答案:

答案 0 :(得分:2)

sprintf将遍历元素或单元格数组:

sprintf('%s\n', strings{:})

循环的问题是'\ n'是一个2元素的char数组,但你想要的是sprintf('\ n')