MATLAB:每个点都有自己颜色的散点图

MATLAB: scatter plot from where each point has its own color

假设我的情况如下:

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, ..., nj = 1, ...,n,我想绘制点 (X(i),Y(j)),其中 (X(i),Y(j)) 的 RBG 颜色是 randcolor(colorcode(i,j),:)。我试图以愚蠢的方式做到这一点:首先 declare

figure; hold on;

然后做 2 个嵌套循环,每个循环 n 步,并使用 plot 绘制单个点 n x 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 增加时,MATLAB 耗尽了我所有的内存。请问有什么更好的方法吗?

p.s。在我的实际问题中, colorcode 实际上并不是随机分配的。相反,它是根据填充的 Julia 集的一些发散标准分配的。

您想使用 scatter 而不是 plot,这样您就可以单独指定每个点的大小和颜色。

colors = rand(numel(X), 3);
S = scatter(X, Y, 100, colors);