大家好,提前感谢。这是我在这里的第一篇文章,如果我应该这样做,请告诉我。
我有一个包含如下行的大文本文件:
"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
我想通过例如 textscan 来转换它。虽然我觉得我知道 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 与 textscan 一起使用。
感谢这个很棒的网页和我在这里找到的帮助,在许多其他帖子中