我有一些看起来像这样的数据:
我想以以下方式对数据进行预处理:将所有Mostly false
替换为1
,将Mostly true
替换为2
和Definitely true
w / 3
。是否存在查找和替换命令,或者执行此操作的最佳方法是什么?
答案 0 :(得分:0)
您可以使用地图对象进行映射
m = containers.Map( {'Mostly false', 'Mostly true', 'Definitely true'}, ...
{ 1, 2, 3} );
然后举一个例子data
data = {'Mostly false', 'Mostly false', 'Mostly true', 'Mostly false', 'Definitely true'};
您可以使用以下方式进行转换
data = m.values( data );
% >> data = {1, 1, 2, 1, 3}
这假设您的地图中总会有一个匹配项。
或者,您可以手动执行操作(对于相同的示例数据),这将使不匹配项保持不变,并且您可以使用strcmpi
来区分大小写:
c = {'Mostly false', 'Mostly true', 'Definitely true'
1, 2, 3};
for ii = 1:size(c,2)
% Make the replacement for each column in 'c'
data( strcmp( data, c{1,ii} ) ) = c(2,ii);
end