gpt4 book ai didi

Matlab:如何读取用空格分隔的字符串但忽略单个空格(使用 textscan)?

转载 作者:行者123 更新时间:2023-12-04 06:21:13 25 4
gpt4 key购买 nike

大家好,提前致谢。
这是我在这里的第一篇文章,如果我应该这样做,请告诉我。

我有一个包含以下行的大文本文件:

"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 与 textscan 结合使用。

感谢这个很棒的网页和我在这里找到的帮助,在许多其他帖子中

最佳答案

较新版本的 matlab 有一个类似于 perl 拆分的正则表达式的“拆分”选项。

>> str = 'DATE      TIMESTAMP    T W M     T AL M C  A_B_C';
>> out = regexp(str, ' +', 'split')

out =

'DATE' 'TIMESTAMP' 'T W M' 'T AL M C' 'A_B_C'

关于Matlab:如何读取用空格分隔的字符串但忽略单个空格(使用 textscan)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com