gpt4 book ai didi

matlab - 读入文件并跳过以特定字符串开头的行

转载 作者:行者123 更新时间:2023-12-02 09:37:19 26 4
gpt4 key购买 nike

我正在尝试使用 Matlab 读取文本文件。该文件采用以下格式:

字符串编号
字符串编号
....

我想跳过以特定字符串开头的行。对于任何其他字符串,我想保存该行中的两个数字。

最佳答案

让我们以这个示例文件 file.txt 为例:

badstring 1 2
badstring 3 4
goodstring 5 6
badstring 7 8
goodstring 9 10

如果一行以 badstring 开头,我们将跳过它,否则我们将存储字符串后面的两个数字。

fid = fopen('file.txt');
nums = textscan(fid, '%s %f %f');
fclose(fid);
ind = find(strcmp(nums{1},'badstring'));
nums = cell2mat(nums(:,2:end));
nums(ind,:) = [];
display(nums)

这会将整个文件读入元胞数组,然后将其转换为矩阵(不包含字符串),然后删除最初以 badstring 开头的所有行。或者,如果文件非常大,您可以使用此迭代解决方案避免临时存储所有行:

fid = fopen('file.txt');
line = fgetl(fid);
numbers = [];
while line ~= -1 % read file until EOF
line = textscan(line, '%s %f %f');
if ~strcmp(line{1}, 'badstring')
numbers = [numbers; line{2} line{3}];
end
line = fgetl(fid);
end
fclose(fid);
display(numbers)

关于matlab - 读入文件并跳过以特定字符串开头的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24181243/

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