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
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.

  0 Comments

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)

Tags