You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中如何依据映射字典将字符字符串转换为对应数字数组

解决方案

这里提供两种无需使用switch case的简洁实现方案,均支持最多20种不同字母的自定义映射需求:

方案1:ismember索引法(最简洁,推荐)

利用Matlab内置ismember函数的第二个返回值直接获取字母对应的索引,仅需提前按映射规则定义字母顺序列表即可,代码量最小:

% 1. 按你的映射规则定义字母列表,第N位的字母对应数值N
% 示例规则为A=1、B=2、C=3,所以按该顺序排列字母,20种字母直接向后补全即可
letter_order = ['A','B','C']; 
% 2. 输入待转换字符串
input_str = 'ABAABCCBA';
% 3. 一行转换得到目标数值数组
[~, num_array] = ismember(input_str, letter_order);

运行后num_array的输出结果就是你需要的[1,2,1,1,2,3,3,2,1]。

方案2:容器映射法(灵活性更高)

如果你的映射规则不是按列表顺序对应数值,属于自定义随机映射,用containers.Map做键值对映射的扩展性更强:

% 1. 定义字母到数值的映射键值对,20种字母直接补全keys和values即可
keys = {'A','B','C'};
values = [1,2,3];
map = containers.Map(keys, values);
% 2. 输入待转换字符串
input_str = 'ABAABCCBA';
% 3. 转换为数值数组
num_array = cell2mat(values(map, num2cell(input_str)));

两种方法的运行效率都可以满足常规数据处理需求,全程无分支判断语句。

内容的提问来源于stack exchange,提问作者sodiumnitrate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:45:05