table 中的 matlab 清理条目
matlab-cleaning entries in a table
在我的 matlab 工作区中,一个 table class 包含带有条目的单元格,如下所示
'206' '2000' '.12750' 'N/A' '36' '116' '2006-03-16 00:00:00' '0'
'180' '10000' '.10500' 'N/A' '36' '116' '2006-03-13 00:00:00' '0'
</pre>
每个条目都是一个字符,例如'206',条目是“'206'”,206不是数字而是字符。我如何遍历每个单元格,从单元格中取出引号并将数字条目转换为实际数字?
Matlab中有str2num
函数将string
数据转换为numeric
数据。所以唯一的问题 - 如何访问 table class
中的值。
如果将数字数据与某些文本分开时出现问题,您可以这样使用 ismember
函数:
a = '3'; %put here code of accessing your needed cell
b='0123456789';
ismember(a,b); %return 1 if `a` is a member of `b`
您可以使用 table2cell 将其转换为单元格。我们称此元胞数组为 x;然后使用正则表达式来检测数字(我似乎记得有一个更简单的方法来完成这一步,但不记得确切的功能)。
isNumeric = @( c) ~isempty( regexp(c,'^\d*$'))
在此之后,将其应用于整个元胞数组
idx = cellfun(isNumeric,x)
将 str2num 应用于数字单元格:
x(idx) = cellfun( @str2num , x(idx),'UniformOutput',false)
在我的 matlab 工作区中,一个 table class 包含带有条目的单元格,如下所示
'206' '2000' '.12750' 'N/A' '36' '116' '2006-03-16 00:00:00' '0' '180' '10000' '.10500' 'N/A' '36' '116' '2006-03-13 00:00:00' '0' </pre>
每个条目都是一个字符,例如'206',条目是“'206'”,206不是数字而是字符。我如何遍历每个单元格,从单元格中取出引号并将数字条目转换为实际数字?
Matlab中有str2num
函数将string
数据转换为numeric
数据。所以唯一的问题 - 如何访问 table class
中的值。
如果将数字数据与某些文本分开时出现问题,您可以这样使用 ismember
函数:
a = '3'; %put here code of accessing your needed cell
b='0123456789';
ismember(a,b); %return 1 if `a` is a member of `b`
您可以使用 table2cell 将其转换为单元格。我们称此元胞数组为 x;然后使用正则表达式来检测数字(我似乎记得有一个更简单的方法来完成这一步,但不记得确切的功能)。
isNumeric = @( c) ~isempty( regexp(c,'^\d*$'))
在此之后,将其应用于整个元胞数组
idx = cellfun(isNumeric,x)
将 str2num 应用于数字单元格:
x(idx) = cellfun( @str2num , x(idx),'UniformOutput',false)