Ожидаемые значения в MATLAB - PullRequest
2 голосов
/ 25 ноября 2011

У меня есть 3D-набор данных, представляющий сетку фотодатчиков, которые, к сожалению, не были устойчивыми во время использования. Я оценил PDF для движения детектора, и я хочу найти ожидаемое значение для каждого датчика. Так как я не хочу отражать свой pdf (то есть я хочу, чтобы f (t) не f (t-tau)), я не думаю, что могу использовать функцию свертки matlab. Есть ли функция, которая будет делать то, что я хочу, или я должен просто продолжать с этим? Я нашел movavg, но он, кажется, делает что-то еще, или, может быть, я просто не следовал ему правильно.

Кроме того, так как я новичок в matlab, из C я склоняюсь к использованию циклов, которые, как я знаю, не подходят для использования Matlab. Есть ли простой способ конвертировать мой 1-D PDF в 3D матрицу, которая будет работать только по одной оси (в данном случае z). Что-то вроде repmat (i, j, pdf).

Спасибо

1 Ответ

1 голос
/ 25 ноября 2011

Ожидаемое значение pdf является интегралом по произведению значений сетки и значений pdf в соответствующих точках сетки.

Для интеграции через 3D-сетку используйте функцию Matlab triplequad ( doc ).В качестве примера, давайте вычислим ожидаемое значение x:

expectedx = triplequad(pdfxfun,xmin,xmax,ymin,ymax,zmin,zmax)

pdfxfun в этом вызове должен быть дескриптором функции, который для любой получаемой точки (x, y, z) должен возвращать произведениезначение PDF в этой точке и х.В вашем случае это может быть достигнуто путем интерполяции данных вашей сетки.Я не знаю функции 3D-интерполяции в Matlab, поэтому, вероятно, вам придется поработать над этим самостоятельно.Грубо говоря, вы должны сделать следующее:

function pdfvalue = pdfinterpolation(x,y,z,Xgrid,Ygrid,Zgrid,pdfdata)
% compute interpolated pdfvalue at (x,y,z) from griddata and pdfdata

Тогда pdfxfun выше можно определить как анонимную функцию при вызове triplequad:

pdfxfun = @(x,y,z) x*pdfinterpolation(x,y,z,myxgrid,myygrid,myzgrid,pdfdata)
expectedx = triplequad(pdfxfun,xmin,xmax,ymin,ymax,zmin,zmax)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...