Matlab 在绘图点之间改变颜色

Matlab 在绘图点之间改变颜色,matlab,Matlab,以下代码绘制了3个点,全部为红色: a = reshape([92.571251 94.869889 97.283709 ],[3 1]); b = reshape([271.000000 296.000000 330.000000 ],[3 1]); c = reshape([0.916000 0.766000 0.562000 ],[3 1]); figure(100); line(b,a,... 'MarkerFaceColor',[1 0 0],... 'Marke

以下代码绘制了3个点,全部为红色:

a = reshape([92.571251 94.869889 97.283709 ],[3  1]);
b = reshape([271.000000 296.000000 330.000000 ],[3  1]);
c = reshape([0.916000 0.766000 0.562000 ],[3  1]);
figure(100);
line(b,a,...
    'MarkerFaceColor',[1 0 0],...
    'Marker','o',...
    'LineStyle','none',...
    'Color',[1 0 0]);
我是否有办法使用“c”对“颜色”打印样式的红色部分进行矢量化,以便第一个点使用c(1)替换1,从而使颜色为[0.916 0],等等

注意:这段代码是一个更大的代码片段,可能会在同一个绘图上绘制100或1000个点。我需要在将每个点放置在绘图上时设置其颜色,然后在添加其他点时不改变颜色。(如有可能)

我不认为彩色地图是合适的,因为我可能在不同的时间在相同的X,Y坐标上绘制点。有时它们是明亮的,有时是暗淡的

只是尽量不使用一个相对直接的循环

谢谢

要对点(仅点,而不是中间的线)着色,可以使用
scatter
函数的
MarkerFaceColor
属性(或3D中的
scatter3

例如:

scatter(a, b, 'MarkerFaceColor', rgb)
其中rgb是rgb三元组,或

scatter(a, b, 'MarkerFaceColor', 'flat', 'CData', c)
c
作为值的向量。在这种情况下,颜色映射到当前颜色映射,范围由
caxis
控制

如果您想在点之间画线,只需使用如下代码:

hold on
plot(a, b, '-')
scatter(...)

最好的方法是,

此处无法实现精确的响应,但指向散射的指针指向使用“散射(a,b,[],col3,'填充');的解决方案的开头,其中col是rgb三元组,[]表示跳过设置大小。我认为分散会做我需要的,所以我接受你的答案,并将尝试让它在以后实际工作。谢谢