2016-07-06 2 views
0

Список Mathematica ListDensityPlot [] может принимать список трехмерных координат, где третья координата является скаляром, называет ее температурой или концентрацией и т. Д. И возвращает график плотности. Список будет выглядеть примерно какЭквивалент функции ListDensityPlot [] Mathematica для Matlab

temperature={{0,0,20},{0,1,25},...,{9,9,35}} 

в описании Mathematica.

Mathematica автоматически интерполирует (я думаю) на значения, чтобы он возвращал непрерывное, плавное изображение с цветовой шкалой для описания скалярных значений на 2D-плоскости.

Есть ли что-то эквивалентное этому в Matlab?

Благодаря

+0

[ 'contour'] (http://www.mathworks.com/help/matlab/ref/contour.html)? – excaza

+0

Контур @excaza, по-видимому, эквивалентен ContourPlot [] в Mathematica, не дает цветовой функции каждой точке сетки, он показывает все точки, которые решают уравнение или неравенство. До сих пор кажется, что pcolor - единственное, что близко к DensityPlot. Но ListDensityPlot от mathematica возвращает также непрерывный результат для списков, тогда как, насколько я могу судить, pcolor возвращает только пиксельные пятна цвета, и мне нужно запустить собственную интерполяцию, чтобы получить гладкий результат. Что вряд ли будет работать быстрее и лучше, чем интерполяция Mathematica – Craig

ответ

0

Вы можете использовать функцию триангуляции Делоне ваших плоских точек, затем создать поверхность над триангуляции.

Это будет выглядеть примерно так:

Points=[xpoints, ypoints, zpoints]; 
tri=delaunay(Points(:,1), Points(:,2)); 
figure 
trisurf(tri, Points(:,1), Points(:,2), Points(:,3)) 
shading interp 
colormap jet 
colorbar EastOutside