Как вычислить градиент сигнала?

#matlab #image-processing

#matlab #обработка изображений

Вопрос:

У меня есть сигнал u, и я использовал следующий код для вычисления градиента: gradx_u = [diff(u,1,1);zeros(1,size(u,2))]; grady_u = [diff(u,1,2) zeros(size(u,1),1)]; Проблема в том, что я получаю нулевой вектор для gradx_u. Например, если я беру вектор [0.1 0.22 0.3 0.5] как u, я получаю: gradx_u = [ 0 0 0 0] grady_u = [0.1200 0.0800 0.2000 0] Я очень признателен, если кто-нибудь, пожалуйста, поможет мне с этой проблемой.

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

1. Можете ли вы иметь как x и y градиент одномерного сигнала? Я предполагаю, что сигнал, на который вы ссылаетесь, находится в пространственной области. diff(u,1,1) вернет ноль, поскольку нет вертикальных соседей для сравнения / использования для получения производной.

2. Большое спасибо. Да, сигнал находится в пространственной области. Это правда. Вертикальная составляющая отсутствует, поэтому я получаю ноль для gradx. Спасибо.