假设我的情况如下:
clc; clear;
n = 1001;
m = 1000;
X = linspace(0,1,n);
Y = linspace(0,1,n);
randcolor = rand(m,3);
colorcode = randi(m,m,m);
对于i = 1, ..., n
和j = 1, ...,n
,我想绘制(X(i),Y(j))
的点(X(i),Y(j))
,randcolor(colorcode(i,j),:)
的RBG颜色为figure; hold on;
。我试图以愚蠢的方式做到这一点:先声明
plot
然后执行2个嵌套循环,每个步骤n步,并使用for i = 1:n
for j = 1:n
plot(X(i),Y(j),'Marker','o',...
'MarkerEdgeColor',randcolor(colorcode(i,j),:),...
'MarkerFaceColor',randcolor(colorcode(i,j),:));
end
end
绘制单个点n x次:
colorcode
这在技术上有效,但速度很慢,当n增加时,MATLAB会占用我所有的记忆。请问有什么更好的方法吗?
P.S。在我的实际问题中,var
实际上并未随机分配。相反,它是基于填充的Julia集的一些分歧标准来分配的。
答案 0 :(得分:1)
您希望使用www.7thweb.net/wicket-jquery-ui/kendo/datatable/InfiniteDataTablePage代替plot
,这样您就可以单独指定每个点的大小和颜色。
colors = rand(numel(X), 3);
S = scatter(X, Y, 100, colors);