MATLAB Answers

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

3 views (last 30 days)
ipwork on 24 Aug 2019
Commented: Star Strider on 24 Aug 2019
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.


Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 24 Aug 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.

More Answers (0)