2012-12-14 32 views
1

我有功能图表与获取颜色表颜色对于给定的值

scatter3(mx,my,mz,3,mx.^2+my.^2); % mx, my and mz are vectors 

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

我尝试这样做:

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

但我正在逐渐

Subscript indices must either be real positive integers or logicals. 

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

谢谢

+0

另请参阅[这个问题](http://stackoverflow.com/questions/20054047/subscript-indices- (对于这个问题的通用解决方案)(http://stackoverflow.com/a/20054048/983722),必须是任意正整数或逻辑通用解。 –

回答

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), :)); 
+0

非常感谢! –