zuozuo小码农 2022-10-10 18:18 采纳率: 25%
浏览 118
已结题

在matlab中如何把元胞数组或字符串数组替换为数字

问题遇到的现象和发生背景

在matlab中如何把元胞数组或字符串数组替换为数字

用代码块功能插入代码,请勿粘贴截图

qd =
'A'
'A'
'A'
'B'
'B'
'C'

zd =
'B'
'C'
'D'
'D'
'C'
'D'

我想要达到的结果

把里面A变为1,B变为2,C变为3,D变为4
qd =[1;1;1;2;2;3];zd=[2;3;4;4;3;4]

  • 写回答

1条回答 默认 最新

  • 叶不伤 2022-10-10 20:21
    关注

    考虑使用strcmp函数吧。strcmp函数评估字符串是否相同
    然后第一次,查询A在cell的哪些位置,把这些位置替换成1
    第二次,查询B在cell的哪些位置,再把这些位置替换成2……
    依次类推。

    m=4; %有4个字符要查询
    n=6; %字符串的长度为6
    a=zd; %替换的原字符串数组为qd,(如果是zd,就替换成zd就好)
    %这几个参数都可以看着换

    text=["A","B","C","D"]; %text储存要查询的字符值
    number=[1,2,3,4]; %number储存对应的数字替换值。

    new=zeros(n,1); %new为新生矩阵,这里先建立一个空的备用
    for i=1:m %四种字符串一共查询四遍
    for k=1:n %逐行查询
    judge=zeros(n,1);
    judge(k)=strcmp(text(i),a(k)) ; %1的是本轮要变成number(i)的,0的是不用变的
    new=new+number(i)*judge; %加在原来空的位置是0的向量上
    end
    end
    disp(new) %new就是所需函数

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 修改了问题 10月10日
  • 创建了问题 10月10日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来