Calculation using matrix indexing for elements with a certain thresholds

10 visualizaciones (últimos 30 días)
I need to calculate the percentage differences of all elements that are larger than 5 in two matrices (A and B). Both A and B have a size of 1000 x 500. I want my results C to be in the same size of 1000 x 500 as well, so that I could plot them on a contour.
Below are my code:
Ind = A>5 & B>5;
C = (A(Ind)-B(Ind))./B(Ind)*100;
Here is the problem. Even though both my matrix "A" and the index variable "Ind" have a size of 1000 x 500, A(Ind) becomes a column data. Therefore my C is a column data, instead of retaining its original set up of 1000 x 500. In this case, how could I do the calculation to ensure my results will be on the grid and with a size of 1000 x 500?
Many thanks.

Respuesta aceptada

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 20 de Ag. de 2021
Editada: Sulaymon Eshkabilov el 20 de Ag. de 2021
There is a couple of small errs in your code and here is a corrected code:
...
A2 = (A>5 & B>5).*A; % Picks up all greater than 5 elements of A and preserves
B2 = (B>5 & B>5).*B; % Picks up all greater than 5 elements of B and preserves
C = (A2-B2)./B2*100;
OPTIONAL: Now you may get rid off or substitute NANs, with 0:
C(isnan(C))=0;

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by