小编Pla*_*god的帖子

用一组开始和结束索引对数组进行索引

我有两个数组:

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)

indexing optimization matlab for-loop vectorization

2
推荐指数
1
解决办法
71
查看次数

散点图的颜色从暗到亮

我想散布一些不同颜色的数据。第一行应该是深蓝色,每一行应该变得更亮一些。目前,我只完成了从深蓝色到其他颜色到黄色的制作。

这是我的代码:

c = linspace(1,10,length(x));
sz = 25;
scatter(x,y, sz,c,'filled');
colorbar
Run Code Online (Sandbox Code Playgroud)

随着结果的情节。

在此处输入图片说明

如何使颜色从深蓝色渐变为浅蓝色?

matlab scatter colors matlab-figure

0
推荐指数
1
解决办法
56
查看次数