如何在Matlab中从文件中获取选择性数据?

时间:2016-04-03 07:16:41

标签: matlab

我正在尝试从包含this内容的文本文件中获取选择性数据。我使用以下代码阅读第四列:

fid = fopen('class.txt');
C = textscan(fid, '%*s %*s %*s %f %*[^\n]');
C = C{:};

我想仅在第四列的对应值等于1时才获取第一列中的值。我想在C=1的值下执行下面的代码,以便我只能从文件中获取选择性数据。

R = textscan(fid, '%f %*[^\n]');
R = R{:};

1 个答案:

答案 0 :(得分:0)

我建议读取整个文件,然后在第二步中提取第四列等于1的行。以下代码将所需的列作为单元格数组data获取,然后将单元格的内容分配给RC。现在,您可以使用逻辑索引来仅获取所需的行。

fid = fopen('class.txt');
data = textscan(fid, '%f %*s %*s %f');
R = data{1};
C = data{2};

result = R(C==1)

对于数据集...

14 114 214 0
15 115 214 0
17 117 215 1
18 118 216 1
15 113 214 1

...输出如下:

result =
    17
    18
    15
相关问题