2D self-destruction in MATLAB

I have some data, a two-dimensional matrix, which we will call A, which I know theoretically, can be described by self-revolution of another matrix, which we will call B:

A=conv2(B,B) 

I am trying to extract B. Is there a way to perform self-destruction of a 2D matrix in MATLAB? Can someone point me in the right direction?

+5
source share
1 answer

We can consider A as coefficients as a polynomial in two variables, and we want to find a polynomial B so that B ^ 2 = A. This type of calculation was not designed for Matlab, but I think that if you have a symbolic mathematical toolbar, you you can make a symbolic polynomial from A, take the square root and convert it back to the coefficient matrix. If the coefficients of A are noisy, then you can evaluate A and then sqrt (A) at several (x, y) points, from which A is 0, compare the polynomial B with these values ​​and extract the coefficients from B. - B will also work . Try not to select points separated by a curve, where A is 0, or you can mix the values ​​of B and -B.

0
source

Source: https://habr.com/ru/post/1213101/


All Articles