How can i find maximum value at each (x,y)location and the plane which contains it in a multidimensional matrix

1 visualizzazione (ultimi 30 giorni)
I have multiple matrices of (M by N) sizes. I need to find which among them contains maximum value at each location(x,y). For loop is very time consumming. Need vectorized operation. Using Matlab 2016 version. Thanks.

Risposta accettata

Star Strider
Star Strider il 24 Ago 2019
Try this:
M = 10;
N = 15;
A1 = rand(M,N); % Create Matrix
A2 = rand(M,N); % Create Matrix
A3 = rand(M,N); % Create Matrix
A4 = rand(M,N); % Create Matrix
Acat = cat(3, A1, A2, A3, A4); % Concatenate Along Dimension 3
[Max,MaxIdx] = max(Acat, [], 3); % Find Max & inIndex Along Dimension 3
The ‘Max’ value is the value of the maximum amongst the matrices created y ‘Acat’, and ‘MaxIdx’ is the matrix with that value, correspoinding to the order in which you concatenated them.

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by