永发信息网

不连续数字个数 用matlab怎么实现

答案:1  悬赏:60  手机版
解决时间 2021-05-13 17:28
不连续数字个数 用matlab怎么实现
有一组数据,比如1,2,3,5,6,8,10,11,12,14,16,17.如果数字有间隔就加1,即123记为1,56记为2,8记为3,101112记为4,14记为5,1617记为6.请问用matlab怎么实现呢.实际数组个数很大
还需要从新数组中能查到某个index对应原数组哪几个index.比如老数组第10000个对应原数组中哪几个数字
最佳答案

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中的每个数就是对应原来数组中的序号的最小的那个


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
dnf的问题啊 高手进
利川市奥丁电竞怎么去啊,谁知道地址啊
为什么我总担心女朋友会背叛我?
这些债怎么讨?
岳阳楼的诗句,急急急急急急急急急急急急!
我两个q号都加了同一个人,为什么他上线只一个
完美国际新手送的太青之灵是永久的么?
联想09款笔记本包包如何辨别真伪?
爱民区好百客超市(东新荣街)地址是什么,有没
天门市美牙健齿(鸿渐路)在什么地方啊,我要过
成考的信息确认了还能更改吗
台试电脑键盘怎么设置
猫叫声下载谁有?
长葛市南京板鸭烧鸡老店在哪里啊,我有事要去
近来可以打耳洞吗
推荐资讯
青春旋律 英伦摇滚风/
天津哪有卖诺基亚5800原装手机挂绳? 多少钱
淇滨区伴侣科技24小时成人用品无人售货店地址
换季了脸上小痘痘什么的都爆长,怎么办?
怎么用手机换QQ秀
一部九几年中央台演过的动画片的名字??急!!!!
求一款街机射击游戏
园林工人植树,第一天完成计划的八分之三,第
跪求驭剑50法宝地煞第五段怎么练?我练这段爆
神将世界活力怎么获得,神将世界极孙茹大招怎
看看物理我做对吗
DNFcof怎么还不减啊??
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?