Интерполяция и производная трехмерных данных в MATLAB (или Python или C)

У меня есть три 3D-матрицы X, Y и Z, которые определяют матрицу V такого же размера в некоторых трехмерных пространствах. Матрицы регулярно расставлены. Теперь я пытаюсь выполнить интерполяцию, а также вычислить пространственные частные производные V i.e для каждого пикселя, вычислить, как V изменяется с помощью x, y и z. Я читал, что интерполяция и вычисления производных с помощью сплайнов приводит к хорошим результатам. Например, я работал с splinefit и ppdiff ( http://www.mathworks.com/matlabcentral/fileexchange/13812-splinefit )

Как использовать сплайны для наборов данных, которые у меня есть? Есть ли какой-нибудь код, доступный предпочтительно в MATLAB (Python и C тоже могут работать) для выполнения таких вычислений?

Предполагая, что я хочу, чтобы производные в выборочных местоположениях определялись по X, Y и Z, могу ли я сделать 1D сплайн-аппроксимации для каждого измерения и вычислить их частные производные? Может быть, это должен быть вопрос для математического обмена. Это, вероятно, займет некоторое время, но оно должно работать правильно?

Спасибо за вашу помощь!

0
nl ja de

2 ответы

попробуйте использовать interp3 , трехмерную интерполяционную функцию данных, которая поддерживает «сплайн», а также другие методы. Дополнительная информация в документации ...

1
добавлено
Как и при любой дифференциации реальных данных, вам всегда нужно сгладить ее через какой-либо фильтр и \ или интерполяцию, прежде чем принимать производные или градиенты, это также верно в 1D, так что на самом деле вопрос? как взять производную в трехмерном массиве?
добавлено автор bla, источник
Я использовал это раньше, но это не помогает с дифференциацией, если я не буду интерполировать, выполнить градиент и, возможно, фильтр нижних частот, результаты
добавлено автор Damian, источник
Теперь, когда вы упомянули об этом, он щелкнул в моей голове. Я просто пытался найти лучший подход к вычислению производной, чем простые различия. Эта функция splinefit вычисляет сплайн-аппроксимацию, а затем выполняет аналитическую производную, если я не ошибаюсь. Это может быть несколько эквивалентно интерполяции с сплайном, дифференциация с первыми отличиями, а lowpass - фильтрация, правильно?
добавлено автор Damian, источник

попробуйте использовать interp3 , трехмерную интерполяционную функцию данных, которая поддерживает «сплайн», а также другие методы. Дополнительная информация в документации ...

1
добавлено
Как и при любой дифференциации реальных данных, вам всегда нужно сгладить ее через какой-либо фильтр и \ или интерполяцию, прежде чем принимать производные или градиенты, это также верно в 1D, так что на самом деле вопрос? как взять производную в трехмерном массиве?
добавлено автор bla, источник
Я использовал это раньше, но это не помогает с дифференциацией, если я не буду интерполировать, выполнить градиент и, возможно, фильтр нижних частот, результаты
добавлено автор Damian, источник
Теперь, когда вы упомянули об этом, он щелкнул в моей голове. Я просто пытался найти лучший подход к вычислению производной, чем простые различия. Эта функция splinefit вычисляет сплайн-аппроксимацию, а затем выполняет аналитическую производную, если я не ошибаюсь. Это может быть несколько эквивалентно интерполяции с сплайном, дифференциация с первыми отличиями, а lowpass - фильтрация, правильно?
добавлено автор Damian, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community