根据matlab中的字典将一串字符转换为数字数组
Converting a string of chars to an array of numbers according to a dictionary in matlab
我有一个包含字母的字符串。我想为每个字母分配一个数字,并将其转换为数组。假设我有
'ABAABCCBA'
并且我有一个字典使得 A=1
、B=2
、C=3
因此我想要的数组是
[1,2,1,1,2,3,3,2,1]
这在 python 中非常容易做到,但我必须使用 matlab 进行后续分析。关于如何在没有 switch case 的情况下尽可能简洁地做到这一点,有什么想法吗? (请注意,这是一个 MRE,原始字符串包含 20 个不同的字母)
不假设键或值连续的通用方法如下:
keys = 'ABC';
values = [1 200 30];
data = 'ABAABCCBA';
[~, result] = ismember(data, keys);
result = values(result);
我有一个包含字母的字符串。我想为每个字母分配一个数字,并将其转换为数组。假设我有
'ABAABCCBA'
并且我有一个字典使得 A=1
、B=2
、C=3
因此我想要的数组是
[1,2,1,1,2,3,3,2,1]
这在 python 中非常容易做到,但我必须使用 matlab 进行后续分析。关于如何在没有 switch case 的情况下尽可能简洁地做到这一点,有什么想法吗? (请注意,这是一个 MRE,原始字符串包含 20 个不同的字母)
不假设键或值连续的通用方法如下:
keys = 'ABC';
values = [1 200 30];
data = 'ABAABCCBA';
[~, result] = ismember(data, keys);
result = values(result);