2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Mathematica. 3D визуализация данных.
Сообщение12.03.2009, 01:45 
Аватара пользователя
Задачка следующая, есть 20 колонок с числами {x,y,z}, нужно построить 3D поверхность.

я сделал следующее, составил все эти колонки в ряд, получил длимую матрицу с 3 столбиками {x,y,x}

точки строятся без проблем командой ListPointPlot3D
однако поверхность построить не удается ListSurfacePlot3D, программa судя повсему не понимает какие точки нужно соединять, вероятно она идет вдоль длинной матрицу попутно соединяя все что подвернется, получается ужас! ... хотя поверхность вполне гладкая.

Мой код:
f = OpenRead["c:/Data/data"];
M = ReadList[f, {Number, Number, Number}];
Close[f];
ListSurfacePlot3D[M, BoxRatios -> {1, 1, 1}]


Как можно построить поверхность?

очевидно компутер хочет матрица с 3 столбиками, но с каким-то хитрым расположением элементов, столбики данных в подряд его не устаревают...

в хелпе программа зайчиков рисует без проблем, а вот вполне плоскую поверхность построить не получается....

П.С.
если можно сделать это MatLab тоже будет не плохо

 
 
 
 
Сообщение12.03.2009, 02:07 
Аватара пользователя
В Matlab посмотрите griddata

 
 
 
 
Сообщение13.03.2009, 04:01 
Аватара пользователя
bubu gaga
сопасибо, посмотрел в сторону Matlab,
пока 2 проблемы,
в лоб расчет не прохоит, данных похоже слишком много (что странно: точечный график строится моментом)

Код:
x = M(:,1)
y = M(:,2)
z = M(:,3)
[X,Y,Z] = meshgrid(x,y,z)
surf(X,Y,Z);
%mesh(X,Y,Z);

предварительное использование функции griddata для ресамплинга позволяет построить график, но результат пока страшненький, но значительно лучше чем выдает Mathematica

пока буду пробывать дальше Matlab, вдруг получится.
П.С.
есть ли в Matlab density plot ? нашел пока только контур плот с заливкой.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group