我有3个载体,每个载体315,000个元素。 X,Y和Z. X& Y是坐标,Z是值。我必须将坐标绘制为2D图形中的点,Z是X和Y的每个坐标处的颜色指示器。我尝试了“散射”命令,但它非常慢。有人会建议一个更好的方法吗?
谢谢!
答案 0 :(得分:1)
根据您要查找的颜色地图类型,您可以尝试类似
的内容zmin=min(Z);
zmax=max(Z);
map=colormap;
color_steps=size(map,1);
hold on
for i=1:color_steps
ind=find(Z<zmin+i*(zmax-zmin)/color_steps & Z>=zmin+(i-1)*(zmax-zmin)/color_steps);
plot(X(ind),Y(ind),'o','Color',map(i,:));
end
这个发现有点贵,但似乎比scatter
更快。我相信你可以进一步优化它。
答案 1 :(得分:0)
从MATLAB文件交换here中尝试cline
。看起来它完全符合您的要求。
答案 2 :(得分:0)
由于矢量的大小,您的代码很慢,而不是因为SCATTER功能。尝试将它们分解为更小尺寸的矢量(例如,每个10个元素)并将每个矢量放入单元阵列的单元格中。然后循环遍历单元阵列并分别散布每个较小的向量,以避免过多地加载到内存中。
hold on
for i=1:numel(XcoordCellArray):
scatter(XcoordCellArray{i},YcoordCellArray{i},S,ZcoordCellArray{i})
end