查找文本并将其替换为Matlab中的值

时间:2019-10-09 12:40:47

标签: matlab replace find

我有一些看起来像这样的数据:

data

我想以以下方式对数据进行预处理:将所有Mostly false替换为1,将Mostly true替换为2Definitely true w / 3。是否存在查找和替换命令,或者执行此操作的最佳方法是什么?

1 个答案:

答案 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