我有用
绘制一些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.
有没有更简单的方法来解决这个任务?
由于
答案 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), :) );