Как создать тепловую карту данных сетки

#matlab #image-processing #signal-processing #interpolation #matrix-multiplication

#matlab #обработка изображений #обработка сигналов #интерполяция #матрица-умножение

Вопрос:

У меня есть эти данные со значениями по краям матрицы и другими значениями с равномерно распределенным интервалом внутри матрицы. Я хочу предсказать значения нулевых позиций по исходным значениям и составить тепловую карту новых данных. В suggest я использую scatteredInterpolant, ndgrid и interpolant, поскольку данные таковы, что interp2 (функции matlab) не могут использоваться для интерполяции нулевых элементов. Теперь этот метод не дает мне плавной фигуры, и я хочу знать, может ли кто-нибудь предложить некоторую помощь. Я прикрепил рисунок из моего кода, данные и код к этому сообщению.Спасибо.

 [knownrows, knowncolumns, knownvalues] = find(DataGrid);  %get location and value of all non-zero points
interpolant = scatteredInterpolant(knownrows, knowncolumns, knownvalues,'linear'); %create interpolant from known values
[queryrows, querycolumns] = ndgrid(1:1:size(DataGrid, 1), 1:1:size(DataGrid, 2));  %create grid of query points
interpolatedj = interpolant(queryrows, querycolumns);
  

Тепловая карта (interpolatedj)

https://www.mediafire.com/?pq40x1ljxk8h996

https://www.mediafire.com/?pq40x1ljxk8h996

Ответ №1:

Для построения сглаженной матрицы вы можете использовать pcolor и установить параметр shading равным interp

 pcolor(M); %where M is your 2D matrix
shading interp %set the shading to interp
  

Комментарии:

1. Я все еще делаю сетку ребер на графике.

Ответ №2:

Попробуйте image(M) или imagesc(M) , где M — матрица. pcolor(M) также работает. Если ваша матрица огромная, вам нужно удалить края, иначе рисунок будет выглядеть как пустое изображение.

Комментарии:

1. Я попробовал их и все еще вижу сетку по краям на графике.

2. насколько велика ваша матрица? если возможно, опубликуйте свой рисунок. используйте set('EdgeColor','none') .

3. Проблема заключается в функции plot, но в интерполяции моих данных. Кто-нибудь может предложить хороший способ решения этой проблемы?