如何从MATLAB中的表格中选择数据

如何从MATLAB中的表格中选择数据,matlab,Matlab,我在MATLAB中有一个表,它的数据类型是单元格字符串和单元格的混合体。 其中一个表列为“侧向”,数据为单元格字符串 我想选择偏侧性为'L'的所有数据 因此,我: newTable = (table.Laterality == 'L') 根据文件: 但是,这会产生错误: Undefined function 'eq' for input arguments of type 'cell'. 我已尝试将数据类型更改为chars。我尝试使用数据集类型而不是表。还有其他建议吗?功能: eq_L =

我在MATLAB中有一个表,它的数据类型是单元格字符串和单元格的混合体。 其中一个表列为“侧向”,数据为单元格字符串

我想选择偏侧性为'L'的所有数据

因此,我:

newTable = (table.Laterality == 'L')
根据文件:

但是,这会产生错误:

Undefined function 'eq' for input arguments of type 'cell'.
我已尝试将数据类型更改为chars。我尝试使用数据集类型而不是表。还有其他建议吗?

功能:

eq_L = cellfun(@(lat) strcmp(lat, 'L'), your_table.Laterality);
               % each cell content (named lat) is compared(*) with 'L'
或者如@excaza所述,
strcmp()
可以处理单元阵列:

eq_L = strcmp(your_table.Laterality, 'L');
然后

eq_L
是一个大小相同的数组,其逻辑值用于


(*)如果每个单元格只有1个字符,则可以编写
lat==“L”
。但是,如果某些数组超过1个字符(或为空),则比较不同大小的数组时会出现错误
strcmp()
可以处理这两种情况。

非常感谢!仅供参考,我最后不得不做
newTable=your_表(eq_L,:)
由于获取新表中所有数据的最后一行
strcmp
在cell阵列上本机工作,因此没有理由使用
cellfun
并减慢操作。
newTable = your_table(eq_L,:); % logical indexing