获取给定值的colormap颜色

时间:2012-12-14 20:33:24

标签: matlab

我有用

绘制一些3D图形的功能
scatter3(mx,my,mz,3,mx.^2+my.^2); % mx, my and mz are vectors

我看到C是一个与X和Y长度相同的矢量,因此每个点的颜色应该按照文档线性映射到当前颜色图中的颜色。

我试过了:

cmap = colormap;
disp(cmap(mx.^2+my.^2));

但我正在

Subscript indices must either be real positive integers or logicals.

有没有更简单的方法来解决这个任务?

由于

1 个答案:

答案 0 :(得分:2)

这很容易。 Colormap不返回矢量,而是返回矩阵。这是因为每种颜色都有三个组成部分(红色,绿色和蓝色)。

>> size(colormap)

ans =

    64     3

>> test = colormap;
>> test(7, :)

ans =

     0         0    0.9375

编辑......而且,我忘记了一些事情:索引需要以某种方式整数。您可能希望将它们舍入或将它们转换为整数。

EDIT2 ...根据您的示例,disp语句的工作方式如下:

disp( cmap(1:( (size(cmap, 1)-1) / (length(mz)-1) ):size(cmap, 1), :) );