# matrix related matlab query

28 visualizaciones (últimos 30 días)
Siddharth Vidyarthi el 22 de Mzo. de 2019
Editada: DGM el 27 de Feb. de 2023
Write a function called minimax that takes M, a matrix input argument and returns mmr, a row vector containing the absolute values of the difference between the maximum and minimum valued elements in each row. As a second output argument called mmm, it provides the difference between the maximum and minimum element in the entire matrix. See the code below for an example:
>> A = randi(100,3,4)
A =
66 94 75 18
4 68 40 71
85 76 66 4
>> [x, y] = minimax(A)
x =
76 67 81
y =
90
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Sahil Deshpande el 30 de Mayo de 2020
Editada: Walter Roberson el 8 de Jun. de 2020
What do you guys think of this?
function [mmr,mmm] = minimax(M)
T = M.'; %Transposed matrix M
S = max(T) - min(T); %S will return a row vector of max - min values of each column of T, which is transpose of S.
%So S returns max - min of each row of M, which is required
mmr = abs(S); %gives the absolute value
mmm = max(max(M)) - min(min(M)); %max(M) and min (M) return a row vector, I used the function twice.
end
DGM el 26 de Feb. de 2023
Editada: DGM el 26 de Feb. de 2023

Iniciar sesión para comentar.

### Respuestas (9)

KETAN PATEL el 11 de Jun. de 2019
function [mmr, mmm] = minimax(A);
B = A';
maxi= max(B);
mini = min(B);
mmr = max(B) - min(B);
mmm = max(maxi) - min(mini);
end
##### 7 comentariosMostrar 5 comentarios más antiguosOcultar 5 comentarios más antiguos
KETAN PATEL el 14 de Jun. de 2019
I have another problem and I just posted it in the community. It is titled as "if-statement with conditions". Could you please take a look if you have time? It's really easy but I don't where I am going wrong.
Ammara Haider el 17 de Dic. de 2019

Iniciar sesión para comentar.

Saurabh Bhardwaj el 8 de Jun. de 2020
function [a,b]=minimax(M)
A= min(M,[],2);
B= max(M,[],2);
a=(B-A)';
b=max(B)-min(A);
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
DGM el 27 de Feb. de 2023
.' is the regular transpose
' is the complex conjugate transpose
It could use some commentary too. Otherwise, this is more thoughtful than most of the solutions on these threads.

Iniciar sesión para comentar.

RP el 4 de Abr. de 2019
I saw this exercise on Coursera and seemed to have solved it, anyway when I ran the code it worked, but when I submit the answer and it is evaluated with random input, I get an error message every time. When I try to run it with the random numbers that were used for the evaluation, I get the correct results. Does anyone have the same problem? This is my code:
function [mmr, mmm] = minimax(M)
mmr = (max(M,[],2)-min(M,[],2))'
mmm = max(M(:))
end
##### 5 comentariosMostrar 3 comentarios más antiguosOcultar 3 comentarios más antiguos
Crystal Judd Unson el 25 de Abr. de 2021
Editada: Crystal Judd Unson el 25 de Abr. de 2021
Hi, I'm new to MATLAB so I'm a little confused on max(A,[],dim). How does this code instruct mmr to be a row vector and not a column vector? Why do I get an error message when
function [mmr, mmm] = test(M)
mmr = (max(M,[],0)-min(M,[],0))';
mmm = max(M(:))-min(M(:));
end
Thanks!
Steven Lord el 25 de Abr. de 2021
x = magic(4);
max(x, [], 0)
Error using max
Dimension argument must be a positive integer scalar, a vector of unique positive integers, or 'all'.
Arrays in MATLAB do not have a dimension 0 so it does not make sense to ask for the maximum along that dimension.

Iniciar sesión para comentar.

RP el 4 de Abr. de 2019
##### 4 comentariosMostrar 2 comentarios más antiguosOcultar 2 comentarios más antiguos
sneha sharma el 10 de Sept. de 2019
function [mmr,mmm]=minimax(A)
a=max(A(1,:))-min(A(1,:));
b=max(A(1,:))-min(A(1,:));
c=max(A(3,:))-min(A(3,:));
d=max(A(end,:))-min(A(end,:));
mmr=[a b c];
mmm=max(A(:))-min(A(:));
end
%this is my program it is not working for random matrices , can you define an error
VIJAY VIKAS MANGENA el 13 de Ag. de 2020
What if the random matrix has more than 3 rows?
1)You have fixed the no.of outputs using this code.You get only 4 values ( if you meant ,b=max(A(2,:))-min(A(2,:));)
2)You have assumed that mmr can have only three outputs which is not always true..it depends on the matrix chosen and your code is supposed to work for any random matrix (the reason you got this error 'not working for random matrices'

Iniciar sesión para comentar.

AYUSH GURTU el 28 de Mayo de 2019
function [mmr, mmm] = minimax(M)
mmr = (max(M,[],2)-min(M,[],2))';
mmm = max(M(:))-min(M(:));
end
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
RUSHI SHAH el 2 de Mzo. de 2020
Can you please explain the syntax for mmr?
Ashitha Nair el 15 de Jun. de 2020
M = max(A,[],dim) returns the maximum element along dimension dim. For example, if A is a matrix, then max(A,[],2) is a column vector containing the maximum value of each row.

Iniciar sesión para comentar.

Ashitha Nair el 15 de Jun. de 2020
function [mmr,mmm]=minimax(M)
a=ceil(max(M.'));
b=ceil(min(M.'));
x=a-b;
mmr=x';
y=max(M(:));
z=min(M(:));
mmm=y-z;
end
This is how I've written it.
##### 2 comentariosMostrar NingunoOcultar Ninguno
Dorbala sankarshana el 23 de Jun. de 2020
DGM el 27 de Feb. de 2023
Why would you take ceil()? That will give you the wrong result for non-integer inputs.

Iniciar sesión para comentar.

anuj petkar el 13 de Sept. de 2020
function [mmr,mmm]=minimax(M)
A=(M(:,:))';
mmr=max(A(:,:))-min(A(:,:));
mmm=max(max(A))-min(min(A));
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
DGM el 27 de Feb. de 2023
A(:,:)
is the same as
A

Iniciar sesión para comentar.

Amit Jain el 24 de Oct. de 2020
function [mmr,mmm] = minimax(A)
T = A';
mmr = max(T)-min(T);
p= max(max(A(1:end,1:end)));
q = min(min(A(1:end,1:end)));
mmm= p-q;
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
DGM el 27 de Feb. de 2023
A(1:end,1:end)
is the same as
A

Iniciar sesión para comentar.

ANDIE MEDDAUGH el 7 de Jul. de 2021
Editada: DGM el 27 de Feb. de 2023
Here's the code I used:
function [mmr, mmm] = minimax(M)
B = M';
maxie = max(B);
minnie = min(B);
mmr = abs(maxie - minnie)
mmm = abs(max(maxie) - min(minnie));
end
The max and min functions read columns, not rows. So the M' switches columns to rows, so that issue is resolved. Abs() is used to ensure absolute value and no negative numbers.
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Categorías

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

### Community Treasure Hunt

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

Start Hunting!

Translated by