Привет всем и заранее спасибо. Это мой первый пост здесь, пожалуйста, дайте мне знать, если я должен сделать это по-другому.
У меня есть большой текстовый файл, содержащий следующие строки:
"DATE TIMESTAMP T W M T AL M C A_B_C"
Сначала я прочитал это при использовании команд fopen и fget1, чтобы получить строку:
Readout = DATE TIMESTAMP T W M T AL M C A_B_C
Я хочу преобразовать это, например. текстскан. Хотя я чувствую, что знаю Matlab, я ни в коем случае не являюсь экспертом в этой команде, и у меня возникают проблемы с ее использованием.
Я хочу получить:
A = 'Date' 'TIMESTAMP' 'T W M' 'T AL M C' 'A_B_C'
Однако, используя следующий код:
A = textscan(Readout,'%s');
A = A{1}';
Я получил:
A = 'DATE' 'TIMESTAMP' 'T' 'W' 'M' 'T' 'AL' 'M' 'C' 'A_B_C'
Как я спросил в заголовке, есть ли способ игнорировать одиночные пробелы?
PS: В конце написания этого я только что придумал не очень элегантное решение, но все же хотел бы знать, есть ли какое-нибудь более приятное решение:
ReadBetter = [];
for n = 1:length(Read)-1
if Read(n) == ' ' & Read(n+1) ~= ' '
else
ReadBetter = [ReadBetter Read(n)];
end
end
ReadBetter = [ReadBetter Read(n+1)];
Read
ReadBetter
Output:
Read =
DATE TIMESTAMP T W M T AL M C A_B_C
ReadBetter =
DATE TIMESTAMP TWM TALMC A_B_C
Теперь я могу использовать ReadBetter с текстовым сканированием.
Спасибо за эту замечательную веб-страницу и помощь, которую я нашел здесь, во многих других сообщениях.