5
Я хочу построить 3D-точки в Matlab
в разных цветах в зависимости от значения. У меня есть следующий код, но это не работает, потому что plot3d
нужен вектор.Участок 3D-точки в Matlab
x = vdhf_data.data(:,1);
y = vdhf_data.data(:,2);
z = vdhf_data.data(:,3);
data = vdhf_data.data(:,4);
grid on
hold all
for k=1:length(x)
if data(k) < 6
plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r')
else
plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g')
end
end
Как это сделать в Matlab?
Я считаю, что вместо 'те (размер (х))' вектор размер в scatter3 может быть скалярным значением для того же размера или пустой ('[]') для размера по умолчанию. – yuk
Да может быть скаляр. Я хочу иметь только два маркера. Есть ли возможность добавить это в одну строку вместо цикла? – Razer
Вам просто нужно будет настроить свою цветовую карту. Итак, для двух цветов (красный и синий) вы сделаете что-то вроде этого 'colormap ([ones (50,1) * [1 0 0]; ones (50,1) * [0 0 1]]). Это сделает разделение цвета в середине диапазона данных. Если вы хотите, чтобы он находился на определенном номере, вы должны масштабировать (n-a, 1) единицы (n + a, 1) соответственно – zamazalotta