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



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

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的行。以下代码获取所需列作为单元数组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

最新更新