how to implement these equations in Matlab?

I have the following equations
where and represent the first-order derivative of matrix I . I tried to implement these equations in matlab using the following lines:
fx = diff(I,1,2);
fx = padarray(fx, [0 1 0], 'post');
fy = diff(I,1,1);
fy = padarray(fy, [1 0 0], 'post');
Gx = -log10(fx);
Gy = -log10(fy);
however, the value of Gx and Gy are complex numbers which means that these equations don't implemented correctely. does anyone know how to implement these equations correctely in matlab? any help will be appreciated.

5 comentarios

VBBV
VBBV el 2 de Oct. de 2020
Editada: Walter Roberson el 2 de Oct. de 2020
fx = padarray(fx,[0 1],0,'post');
Similarly for fy. The second argument in pad array is size of matrix. Third arg is value
ghada sandoub
ghada sandoub el 2 de Oct. de 2020
thanks for your response. do you mean that the remaining lines of code are correct and this will calculate the logarithmic of derivative correctly?
VBBV
VBBV el 2 de Oct. de 2020
Editada: Walter Roberson el 2 de Oct. de 2020
May be use natural log instead of decimal log
Gx = -log(fx);
John D'Errico
John D'Errico el 2 de Oct. de 2020
natural log vs log10 is irrelevant. If one gives complex, than so will the other.
The log of a negative number is complex. Taken to ANY base.
VBBV
VBBV el 2 de Oct. de 2020
Editada: VBBV el 2 de Oct. de 2020
Check if fx and fy Is producing negative values. Also verify the initial conidtions for generating I matrix used as input to diff function

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Symbolic Math Toolbox en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 1 de Oct. de 2020

Editada:

el 2 de Oct. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by