2014-08-28 2 views
1

У меня есть 3d участок частиц. У меня есть 500 кадров движения этих частиц. Кадры принимаются из трехмерной матрицы, содержащей положение (x, y, z) Еще один столбец в матрице - смещение. Скажем, это столбец 7 в моей трехмерной матрице. Как назначить значения цвета на основе этих значений смещения для каждой частицы?MATLAB caxis присваивая значение

Я знаю о caxis ([0 1]), но как он узнает, в какой колонке при определении цвета он должен быть. У меня есть и другие столбцы. Есть ли способ назначить это?

Текущий код:

filename = 'testing.gif' 
FigHandle = figure('Position', [100, 100, 800, 700]); 
for i = 1:499 
    s = 2; 
    scatter3(ans.atom_data(:,3,i),ans.atom_data(:,4,i),ans.atom_data(:,5,i),s) 
    colorbar 
    caxis([0,1.61]) 
    T(i) = getframe 
end 
+0

Какова дальность ваших перемещений? –

+0

Давайте просто скажем 0-1.5 (я могу отредактировать позже) –

+0

OK. Звучит хорошо. Какую функцию вы используете для построения, поэтому я могу указать, как установить цвет? –

ответ

0

цвет берется из карты цветов. Большинство функций построения Matlab позволяют вам задавать цветовую карту явно. Для scatter3 вам нужно будет передать 5-й параметр, который называется C. Согласно mathworks documentation on scatter3:

Если С представляет собой вектор с длиной, равной длине X, Y и Z, то значения в C линейно преобразуются в цвета в текущем палитрой.

Это означает, что вы можете просто передать в колонке 7, без необходимости корректировать caxis:

filename= 'testing.gif' 
    FigHandle = figure('Position', [100, 100, 800, 700]); 
for i=1:499 

    s=2; 
    scatter3(ans.atom_data(:,3,i),ans.atom_data(:,4,i),ans.atom_data(:,5,i),s,ans.atom_data(:,7,i)) 
    colorbar 
    T(i)=getframe 
end 

Если цвет по умолчанию Карта не является удовлетворительным, вы всегда можете создать свой собственный, передавая n x 3 массив до colormap функция.

Наконец, вы должны знать, что переменная ans имеет особое значение в matlab и будет изменяться с каждым выполняемым вами заявлением. Вы можете захотеть сохранить свои данные в переменной с другим именем.

+0

Thank you! Это помогло! –

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