Замена \ n в строке новыми строками в Matlab - PullRequest
1 голос
/ 30 октября 2011

Я пытаюсь объединить ячейку-массив строк, разделяющих каждую новую строку, в одну строку в 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 Ответ

2 голосов
/ 30 октября 2011

sprintf будет перебирать элементы или ваш массив ячеек:

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

Проблема с вашим циклом в том, что '\ n' - это массив из 2 элементов, но вы хотите sprintf ('\ n«)

...