首页 > 解决方案 > 如何为某些点绘制具有不同颜色的网格(MATLAB)

问题描述

问题

我有一个方形网格,尺寸为 NxN,网格点/节点之间的间距恒定。我想绘制这个网格,但有些点很特别,希望它们以不同的颜色绘制。

期待

预期的情节应该是这样的,但有些块必须有不同的颜色!

在此处输入图像描述

代码

下面给出了我荒谬而缓慢的解决方案:

N = 80;
x = 1:1:N;
y = 1:1:N;

rx = randi([1 80],1,1000); %represents the x coordinates of the special points 
ry = randi([1 80],1,1000); %represents the y coordinates of the special points 

[X,Y] = meshgrid(x,y);
Z = zeros(80,80);
figure(1)
surf(X,Y,Z);

%Abandon surf, use scatter instead
figure(2)
for i=1:N
    for j=1:N        
        plot(x(i),y(j),'bo');
        hold on
    end
end

for i=1:1000
    plot(rx(i),ry(i),'ro');
    hold on    
end
grid on    

因为我的眼睛在流血,正确的做法是什么?非常感谢。

标签: matlabplotgrid

解决方案


颜色由 Z 控制。所以让 Z 成为不同的值。

linear_indx=sub2ind([N,N],rx,ry);
Z(linear_indx)=1;

为一组不同的颜色更改颜色图(或制作您自己的颜色图)。或使用surf(X,Y,Z,C).

在此处输入图像描述


推荐阅读