Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 选择表中包含字符串向量中一个名称的行_String_Matlab_Subset - Fatal编程技术网

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

String 选择表中包含字符串向量中一个名称的行,string,matlab,subset,String,Matlab,Subset,我正试图根据一列中的值来子集一个matlab表。我想选择多行,其中包含此字符串数组中的任何名称:names=[“Smith”、“Johnson”、“Wilson”]。下面有一个选择单个组件的示例,但我想知道如何从数组中选择 基于一个描述符选择的示例: load patients patients = table(LastName,Age,Gender,Height,Weight,Smoker); subset_patients = patients(strcmp(patients.LastNam

我正试图根据一列中的值来子集一个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),:)
但是,此代码不起作用。

请尝试而不是
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
是字符串数组。上述代码之所以有效,是因为正如
ismember
的文档中所述

ismember(A,B)
A
必须与
B
属于同一类别,但以下例外情况除外:[……]

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