选择表中在字符串向量中包含一个名称的行

问题描述 投票:0回答:1

我正在尝试根据一列中的值对Matlab表进行子集化。我想选择多行,其中包含此字符串数组中的任何名称:names = [“ Smith”,“ Johnson”,“ Wilson”]。下面有一个选择奇异分量的示例,但我想知道如何从数组中选择...

基于一个描述符的示例选择:

load patients
patients = table(LastName,Age,Gender,Height,Weight,Smoker);
subset_patients = patients(strcmp(patients.LastName, 'Wilson'),:)

我想做类似下面的代码的事情-在这里我选择所有包含名称的行。因此,我将获得三行数据,每个名称一行。

names = ["Smith", "Johnson", "Wilson"]
subset_patients_names = patients(strcmp(patients.LastName, names),:)

但是此代码不起作用。

string matlab subset
1个回答
0
投票

尝试用ismember代替ismember

strcmp

请注意,表>> subset_patients_names = patients(ismember(patients.LastName, names),:) subset_patients_names = 3×6 table LastName Age Gender Height Weight Smoker _________ ___ ______ ______ ______ ______ 'Smith' 38 'Male' 71 176 true 'Johnson' 43 'Male' 69 163 false 'Wilson' 40 'Male' 68 180 false 中的第一列包含字符向量,而patients字符串的数组。如[names的文档所述,

字符向量的单元格数组可以与字符数组或字符串数​​组组合。

© www.soinside.com 2019 - 2024. All rights reserved.