Получить строку в выводе fprintf для отображения всех символов - PullRequest
1 голос
/ 27 ноября 2011

Я пытаюсь написать код Matlab, чтобы сгенерировать какую-то страницу результатов в текстовом файле, но здесь, кажется, есть некоторый пробел в базовых знаниях (я новичок в Matlab). Поэтому меня смущает то, как matlab обрабатывает строки. Я думал, что мог бы создать вектор, полный строк, например SampleNr = ['sample1','sample2']; и позже возьмите этот вектор и распечатайте в файл один конкретный элемент, например, fprintf(fid, '%s', SampleNr(i)); но когда я запускаю это, я получаю только символ в позиции i в строке вместо всей строки. Как я уже сказал, это, скорее всего, неправильное понимание этой концепции, и поиски на сайте математических работ не прояснили это для меня, поэтому я ищу коллективную мудрость стека обмена. MWE будет:

 SampleNr = ['sample1','sample2'];
 sprintf('%s', SampleNr(2))

Был бы признателен метод получения всей строки, но я также хотел бы по возможности устранить эту путаницу, поэтому в будущем я могу уверенно работать со строками в matlab. Заранее спасибо.

1 Ответ

4 голосов
/ 27 ноября 2011

В matlab строка представляет собой массив символов, поэтому, когда вы пишете ['sample1','sample2'], она объединяет 2 строки в одну строку 'sample1sample2'.

Чтобы быть понятным, когда вы пишете строку 'sample', оно хранится так: ['s','t','r','i','n','g']

Чтобы делать то, что вы хотите, вам нужно использовать ячейки:

SampleNr = {'sample1','sample2'}
sprintf('%s', SampleNr{2})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...