【问题标题】:MATLAB: scatter plot from where each point has its own color [duplicate]MATLAB:散点图,每个点都有自己的颜色[重复]
【发布时间】:2016-05-19 02:30:36
【问题描述】:

假设我有如下情况:

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),:)。我试图以愚蠢的方式做到这一点:首先声明

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 耗尽了我所有的内存。请问有什么更好的方法吗?

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

【问题讨论】:

    标签: matlab matlab-figure


    【解决方案1】:

    您想使用scatter 而不是plot,它允许您单独指定每个点的大小和颜色。

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

    【讨论】:

    • 谢谢。为了我的目的,我需要用 meshgrid 修改你的答案,但分散的建议是正确的。
    猜你喜欢
    • 2019-05-25
    • 2016-01-22
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2018-01-14
    相关资源
    最近更新 更多