matlab - 在 Matlab 中查找文本并将其替换为一个值
问题描述
我有一些看起来像这样的数据:
我想以一种将所有数据替换Mostly false
为1
、Mostly true
with2
和Definitely true
w/的方式预处理数据3
。是否有查找和替换命令或最好的方法是什么?
解决方案
您可以使用地图对象进行映射
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
推荐阅读
- airflow - 如何防止追赶 DAG?
- javascript - 除了用连字符分隔的拆分之外,查找字符串大小的方法?
- java - java - 如何在java中使用数组if else和foreach创建方法
- angular - when using [(ngModel)] directive, what is the event expression called to detect change?
- tensorflow - Jetson TX2 tensorflow per_process_gpu_memory_fraction variable cannot set to 1.0
- node.js - How to make your own push notification service for your website
- c# - 未找到 Http Post 500 错误
- java - 如何检查 Firebase Firestore 事务是否已更新到服务器?
- dart - AppBar 中的字幕
- php - 当我使用 Laravel JWT 时,这条线出现在路由类中,但我无法确定错误