У меня есть набор из n = 8000 декартовых координат X, Y и Z в качестве векторов, а также вектор V того же размера, который я хочу использовать в качестве значений для создания тепловой карты на сфере.
Я видел эту ссылку (визуализация разбросанных данных по поверхности сферы MATLAB), но я не понимаю, как преобразовать этот набор данных в сетку сетки для построения с помощью прибоя.
Почти в каждом примере, который я видел, используются меш-сетки. Прямо сейчас я рисую сферу, а затем использую scatter3, чтобы нарисовать свои точки в виде больших шаров и попытаться сгладить их позже. Я выгляжу так:
Я хотел бы получить рисунок как рисунок примера в той ссылке, где он использует:
k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);
c = hadamard(2^k);
surf(x,y,z,c);
colormap([1 1 0; 0 1 1])
axis equal
РЕДАКТИРОВАТЬ:
(Извините, что так долго не отвечал, корона-кризис не позволял работать) На самом деле я делаю следующее:
for i=1:numel(pop0n)
ori(i,:)=ori(i,:)/norm(ori(i,:));
end
x = ori(:,1);
y = ori(:,2);
z = ori(:,3);
%// plot
m=100;
[aa,bb,cc] = sphere(m);
surf(aa,bb,cc,ones(m+1,m+1)*min(pop0n))
hold on
colormap jet;
scatter3(x,y,z,400,pop0n/norm(pop0n),'filled');
colorbar
shading interp
Массив ori имеет размер 8000x3 и содержит координаты x, y и z точек, которые я хочу построить, а pop0n представляет собой вектор размером 8000 с интенсивностью каждой координаты.
Мой главный вопрос: как мне преобразовать мои x, y, z и pop0n, которые являются векторами, в 2D-массивы (сетку) для использования серфинга? Потому что я не могу просто выполнить команду surf(x,y,z,pop0n), если они являются векторами.
заранее спасибо
griddata
? - person David   schedule 28.04.2020scatter3
. Используйтеsurf
и отправьте свой векторV
в качестве четвертого параметра (как в приведенном вами примере). - person Hoki   schedule 28.04.2020