在数组中的元素之间添加缺少的数字

2个视图(过去30天)
迪帕克·辛格
迪帕克·辛格 2021年5月11日
评论: 迪帕克·辛格2021年5月12日
我有两个这样的数组
Var1=[1 1 2 4 5 7 7 8 10 11 14 17 17 18 20];
Var2=[0.50.30.1 0.6 0.2 0.4 0.8 0.9 0.3 0.2 0.1 0.4 0.8 0.7 0.5 0.9 0.2 0.8 0.7];
我想在不影响其他值的情况下,在Var1中填写缺失的序列号。我希望我的Var1看起来像这样:
Var1_filled=[1 12 3 4 5 6 7 7 8 9 10 11 12 14 15 16 17 17 19 20];
对于Var2,我想使用像NaN这样的填充值来表示Var1中相应的缺失数字。所以Var2应该是这样的:
Var2_filled=[0.5 0.3 0.1 NaN 0.6 0.2 NaN 0.4 0.8 0.9 0.3 NaN 0.2 0.1 NaN 0.4 0.8 0.7 NaN 0.5 0.9 0.2 0.8 0.3 NaN 0.7];
所以,当我
绘图(Var1_填充,Var2_填充)
然后我可以想象缺失的点。
我不能手动做这个,因为我有大量的数据,所以我需要一些自动的方法来做这个。这样我就可以循环运行我的所有数据。任何帮助都将不胜感激。

公认的答案

蒋方军
蒋方军 2021年5月11日
编辑:蒋方军 2021年5月11日
%%
Var1=[1 1 2 4 5 7 7 8 10 11 14 17 17 18 20];
Var2=[0.50.30.1 0.6 0.2 0.4 0.8 0.9 0.3 0.2 0.1 0.4 0.8 0.7 0.5 0.9 0.2 0.8 0.7];
x=min(Var1):1:max(Var1);
NewEle1=setdiff(x,Var1);
NewEle2=nan(大小(NewEle1));
NewVar1=[Var1,NewEle1];
NewVar2=[Var2,NewEle2];
[NewVar1,index]=排序(NewVar1);
NewVar2=NewVar2(索引)

更多答案(1)

马特J
马特J 2021年5月11日
编辑:马特J 2021年5月11日
Var1=[1 1 2 4 5 7 7 8 10 11 14 17 17 18 20];
Var2=[0.50.30.1 0.6 0.2 0.4 0.8 0.9 0.3 0.2 0.1 0.4 0.8 0.7 0.5 0.9 0.2 0.8 0.7];
a=accumarray(变量1(:),1);
b=a>0;
a(a==0)=1;
c=重复(b,a)。”;
Var1_filled=repelem(1:numel(Var1),a);
Var2_filled=nan(尺寸(c));
Var2_填充(c)=Var2;
Var1_填充,
Var1_填充= 1×27
1 1 2 3 4 5 6 7 7 7 8 9 10 11 12 13 14 14 15 16 17 17 17 17 18 19 20
Var2_填充,
Var2_填充= 1×27
0.5000 0.3000 0.1000 NaN 0.6000 0.2000 NaN 0.4000 0.8000 0.9000 0.3000 NaN 0.2000 0.1000 NaN 0.4000 0.8000 0.7000 NaN 0.5000 0.9000 0.2000 0.8000 0.3000 NaN 0.7000
1评论
迪帕克·辛格
迪帕克·辛格 2021年5月12日
谢谢。它也有用。我以前刚接受过一个。

登录以发表评论。

下载188bet金宝搏


释放

R2021a

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!