我正在尝试根据一列中的值对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),:)
但是此代码不起作用。
尝试用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
的文档所述,
字符向量的单元格数组可以与字符数组或字符串数组组合。