文件中有数据:1223 (_sex male) (_age child) (_race white) (_face smiling) (_prop '()),用readtable函数读取的话,如何去掉括号,防止读取到括号,只读取到英文。
时间: 2024-02-22 14:59:45 浏览: 119
可以使用readtable函数的'Delimiter'参数来指定分隔符,并使用'readtable'函数的'ReadVariableNames'参数来指定是否读取变量名。因此,可以尝试使用以下代码读取数据:
```matlab
opts = detectImportOptions('filename.txt');
opts.Delimiter = {' ', '(', ')'};
opts.ReadVariableNames = false;
data = readtable('filename.txt', opts);
```
这段代码会将空格、左括号和右括号都当作分隔符处理,从而避免读取到括号。'ReadVariableNames'参数设置为false,表示不读取变量名,只读取数据。读取后的数据将会是一个表格,每个数据都以一个单独的单元格存储,不包含括号。
相关问题
现在有一组数据: 1224 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1225 (_sex male) (_age child) (_race white) (_face smiling) (_prop '()) 1226 (_sex male) (_age child) (_race white) (_face smiling) (_prop '()) 1227 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1228 (_missing descriptor) 1229 (_sex male) (_age adult) (_race white) (_face serious) (_prop '()) 1230 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1231 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1232 (_missing descriptor) 1233 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1234 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1235 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1236 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1237 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1238 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1239 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1240 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1241 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1242 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1243 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1244 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1245 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1246 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1247 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1248 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1249 (_sex male) (_age child) (_race white) (_face funny) (_prop '()) 1250 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1251 (_sex male) (_age child) (_race white) (_face serious) (_prop '()) 1252 (_sex female) (_age child) (_race white) (_face smiling) (_prop '()),根据sex,分为male一组和female一组
可以使用MATLAB中的逻辑索引来实现将数据根据'sex'分为'male'一组和'female'一组。具体步骤如下:
```matlab
% 读取数据
data = readtable('filename.txt', 'Delimiter', {' ', '(', ')'}, 'ReadVariableNames', false);
% 根据'sex'分为'male'一组和'female'一组
is_male = strcmp(data.Var2, 'male'); % 判断是否为'male'
male_data = data(is_male, :); % 将'male'数据筛选出来
female_data = data(~is_male, :); % 将'female'数据筛选出来
```
上述代码中,首先使用之前提到的方法读取数据。然后,使用逻辑索引`strcmp(data.Var2, 'male')`来判断每个数据是否为'male'。将结果保存到`is_male`中。最后,使用逻辑索引`is_male`和`~is_male`来将数据分为'male'一组和'female'一组,分别保存到`male_data`和`female_data`中。
阅读全文