l=length(a);

m=1;

aa=num2str(a(1));

p=num2str(a(1));

for k=2:l

b(m)=str2num(aa);

c(m)=str2num(p);

if a(k)-a(k-1)==1

aa=strcat([num2str(aa),num2str(a(k))]);

p=strcat([p,num2str(k)]);

else m=m+1; aa=num2str(a(k));p=num2str(k);

end

end

b,c

这样得到的b就是所求的新数组,c就是新数组的元素对应的原数组的下标

比如c(9)就是新数组中第九个元素对应的原数组的下标

再问: 请问在程序中多次使用num2str和str2num是什么作用呢?直接使用数字不行吗? 我运行了程序,发现结果是存在一起的,中间没有间隔。但是我的目的是,比如10,11,12记为4,那我想知道当序号为4时,对应原来数组中的序号10,11,12中最小的是哪个,即得到10。如果您有时间能不能帮我解释修改下呢?

再答: l=length(a); m=1; aa=num2str(a(1)); for k=2:l b(m)=str2num(aa); if a(k)-a(k-1)~=1 m=m+1; aa=num2str(a(k)); end end b 没太看明白你的意思,这样看是不是你要的。 b中的每个数就是对应原来数组中的序号的最小的那个

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐