基于Matlab的彩色阵列点快速绘制

基于Matlab的彩色阵列点快速绘制,matlab,matlab-figure,Matlab,Matlab Figure,我有一个长度为N的X/Y数据数组,和一个对应的颜色数组Nx3。我希望根据颜色数组中相应的颜色为X/Y数据的绘图着色 单个XY阵列的大小大于100000,我有很多阵列要绘制,所以希望能找到一个快速解决方案 我目前如何在循环中执行此操作的示例 xy_data = zeros(100000, 2); colors = zeros(100000, 3); figure; hold on for i = 1:length(xy_data) plot(xy_data(i, 1), xy_data(i

我有一个长度为N的X/Y数据数组,和一个对应的颜色数组Nx3。我希望根据颜色数组中相应的颜色为X/Y数据的绘图着色

单个XY阵列的大小大于100000,我有很多阵列要绘制,所以希望能找到一个快速解决方案

我目前如何在循环中执行此操作的示例

xy_data = zeros(100000, 2);
colors = zeros(100000, 3);
figure;
hold on
for i = 1:length(xy_data)
    plot(xy_data(i, 1), xy_data(i, 2), '.', 'color', colors(i, :));
end
这在技术上是可行的,但速度可能相当慢,尤其是当有大量数据点和大量xy阵列需要绘制时。 我想知道

  • 有没有更快的办法
  • 有没有办法将其打印为多色线,而不是标记('.')
  • 可以使用一次绘制所有点,每个点使用不同的颜色。颜色值作为第四个参数传递。第三个参数是标记大小(可以是固定的,也可以为每个点指定不同的值):


    你说的多色线是什么意思?两点之间的线段应该是什么颜色?
    xy_data = rand(1000, 2);
    colors = rand(1000, 3);
    scatter(xy_data(:, 1), xy_data(:, 2), 30, colors, '.')