2015-06-12 5 views
0

У меня возникли особые проблемы. Во-первых, я использую октаву. У меня есть набор данных, где каждая строка имеет следующий формат:Октавный участок разного цвета для каждой точки

datarow = [ x, y, z, colourIndex]; 

Длина набора данных не имеет значения, но предположим, что это 10. Я хочу, чтобы иметь возможность построить 3D-сюжет с любой точки, имеющей цвет его специфического цветового индекса. Конечно, я знаю, что я могу использовать цикл for и добавлять каждую точку в отдельности, но мне трудно поверить, что нет никакого способа сделать это с использованием векторов.

До сих пор я пытался:

map = cool(); #init colormap 
data = initializeData(); #initialize data 
plot3(data(:,1),data(:,2),data(:,3),"c" , map(data(:,4))); #doesn't work 

Любые идеи, если это возможно сделать один-лайнер для моего вопроса?

ответ

0

Использование :

N_colors = 64; 
colormap(cool(N_colors)); 
# point positions (your data(:, 1:3)) 
[x, y, z] = peaks (20); 
# these are the color indexes in the colormap (your data(:, 4)) 
c_index = fix(rand(size(x)) * N_colors); 
marker_size = 8; 

scatter3(x(:), y(:), z(:), marker_size, c_index(:)) 

enter image description here

Смежные вопросы