Calculation using matrix indexing for elements with a certain thresholds

조회 수: 1 (최근 30일)
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.

채택된 답변

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021년 8월 20일
편집: Sulaymon Eshkabilov 2021년 8월 20일
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;

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by