我有两个数组:
timesteps = [1,3;5,7;9,10];
data = [1,2,3,4,5,6,7,8,9,10];
Run Code Online (Sandbox Code Playgroud)
timesteps数组中的值描述了data我想要的值。第一列开始,第二列结束。
例如我在这里想得到[1,2,3,5,6,7,9,10]。
所以这段代码对我来说很好用,但是由于for循环的缘故,它非常慢... Matlab中是否有一个内衬,所以我可以摆脱for循环?
newData=[];
for ind=1:size(timesteps,1)
newData=cat(2,newData,data(timesteps(ind,1):timesteps(ind,2)));
end
Run Code Online (Sandbox Code Playgroud)
编辑:通过Wolfie的解决方案,我得到了以下(非常好的)结果。(我只使用了一个小数据集,通常是大数据集的50倍。)
(Mine) Elapsed time is 48.579997 seconds.
(Wolfies) Elapsed time is 0.058733 seconds.
Run Code Online (Sandbox Code Playgroud) 我想散布一些不同颜色的数据。第一行应该是深蓝色,每一行应该变得更亮一些。目前,我只完成了从深蓝色到其他颜色到黄色的制作。
这是我的代码:
c = linspace(1,10,length(x));
sz = 25;
scatter(x,y, sz,c,'filled');
colorbar
Run Code Online (Sandbox Code Playgroud)
随着结果的情节。
如何使颜色从深蓝色渐变为浅蓝色?