Создание сфер в Matlab, которые меняют цвет поверхности в зависимости от данных

Я пытаюсь создать серию случайно распределенных сфер в Matlab, три будут тремя подмножествами. Я хотел бы, чтобы каждое подмножество имело другой цвет. Я использую структуру, потому что каждая сфера также будет иметь разные свойства, связанные с ней. Я попытался использовать цветовую карту и установить (... 'FaceColor' ..), но у меня возникли некоторые трудности. Пожалуйста помоги.

for n = 1:100
    Bslice.cell(n).index = n; 
    Bslice.cell(n).type = 'Tyep1'; % Type2, Type3
    Bslice.cell(n).location = round(rand(1, 3)*10);
end 

%%
[x,y,z] = sphere;

for n = 1:10
    hold on 
    grid on
    surfl(x-Bslice.cell(n).location(1), y-Bslice.cell(n).location(2), z-Bslice.cell(n).location(3)); 
    shading interp
    % colormap(hot(100))
end

person Cerberus    schedule 30.11.2012    source источник
comment
Другой способ сформулировать ваш вопрос: как я могу создать три трехмерных кластера?   -  person mac389    schedule 01.12.2012


Ответы (1)


Создайте матрицу c, соответствующую цвету каждой точки на сфере. Затем,

[x y z] = sphere;
surf(x,y,z,c);

Дополнительная документация на surf здесь.

person Jacob    schedule 30.11.2012