Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

# 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,

1 visualización (últimos 30 días)
Debaditya Chakraborty el 27 de Mayo de 2019
Cerrada: Rik el 24 de Jul. de 2020
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) %EXAMPLE
A =
66 94 75 18
4 68 40 71
85 76 66 4
>> [x, y] = minimax(A)
x =
76 67 81
y =
90
%end example
%calling code: [mmr, mmm] = minimax([1:4;5:8;9:12])
Is my logic correct?
my approach
function [a,b]= minimax(M)
m=M([1:end,0);
a= [abs(max(M(m))-min(M(m)))];
b= max(M(:)) - min(M(:));
end
##### 15 comentariosMostrar 13 comentarios más antiguosOcultar 13 comentarios más antiguos
Matrika Shukla el 18 de Jul. de 2020
What does (M.') do exactly?
Walter Roberson el 18 de Jul. de 2020
M.' is transpose (not conjugate transpose, just plain transpose)

### Respuestas (14)

mayank ghugretkar el 5 de Jun. de 2019
here's my function....
went a little descriptive for good understanding to readers.
function [a,b]=minimax(M)
row_max=max(M');
overall_max=max(row_max);
row_min=min(M');
overall_min=min(row_min);
a=row_max - row_min;
b=overall_max-overall_min;
[mmr, mmm] = minimax([1:4;5:8;9:12])
##### 5 comentariosMostrar 3 comentarios más antiguosOcultar 3 comentarios más antiguos
Purushottam Shrestha el 8 de Jun. de 2020
We need to transpose because max(M.') gives a row vector of maximum elements of each row. I want you to try by giving command >>max(A.') Then you can see clearly.
Stephen23 el 17 de Jul. de 2020
"We need to transpose because max(M.') gives a row vector of maximum elements of each row."
In some specific cases it will, but in general it does not.
"I want you to try by giving command >>max(A.') Then you can see clearly."
Okay, lets take a look:
>> A = [1;2;3]
A =
1
2
3
>> max(A.')
ans = 3
I can clearly see that this does NOT give the maximum of each row of A.

Arooba Ijaz el 1 de Mayo de 2020
function [mmr,mmm] =minimax (M)
%finding mmr
a=M'
b=max(a)
c=min(a)
mmr=b-c
%finding mmm
d=max(M)
e=max(d)
f=min(M)
g=min(f)
mmm=e-g
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Walter Roberson el 9 de Jun. de 2020
M is two dimensional. When you take max() of a two-dimensional matrix, then by default the maximum is taken for each column, so you would go from an m x n matrix to a 1 x n matrix of output. Then max() applied to that 1 x n matrix would take the maximum of those values, giving you a 1 x 1 result.
Rik el 9 de Jun. de 2020
This is done, because max only operates on a single dimension. Starting from R2018b you can specify a vector of dimensions, or use the 'all' keyword, see the documentation. In this answer they probably should have written max(M(:)) instead. I don't know who upvoted this function, as it is undocumented and takes a strange path to an answer.

Nisheeth Ranjan el 28 de Mayo de 2020
function [mmr,mmm]=minimax(A)
mmt=[max(A,[],2)-min(A,[],2)];
mmr=mmt'
mmm=max(max(A))-min(min(A))
This is the easiest code you cold ever find. Thank me later.
##### 5 comentariosMostrar 3 comentarios más antiguosOcultar 3 comentarios más antiguos
Jessica Avellaneda el 22 de Jul. de 2020
Walter Roberson el 22 de Jul. de 2020

Geoff Hayes el 27 de Mayo de 2019
Editada: Geoff Hayes el 27 de Mayo de 2019
Is my logic correct?
I'm not clear on why you need the m. In fact, doesn't the line of code
m=M([1:end,0);
fail since there is no closing square bracket? What is the intent of this line?
Take a look at max and min and in particular the "dimension to operate along" parameter and see how that can be used to find the minimum and maximum value in each row (as opposed to in each column).
##### 4 comentariosMostrar 2 comentarios más antiguosOcultar 2 comentarios más antiguos
RAHUL KUMAR el 8 de Mayo de 2020
function [mmr mmm] = minimax(M);
mmr = (max(M,[],2) - min(M,[],2))';
mmm = max(M(:))-min(M(:));
end
Sahil Deshpande el 30 de Mayo de 2020
function [mmr,mmm] = minimax(M)
mmr = abs(max(M.')-min(M.'));
mmm = max(max(M)) - min(min(M));
I did it this way

pradeep kumar el 26 de Feb. de 2020
function [mmr,mmm]=minimax(M)
mmr=abs(max(M')-min(M'));
mmm=(max(max(M'))-min(min(M')))
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Rik el 26 de Feb. de 2020
Editada: Stephen23 el 17 de Jul. de 2020
Why would you use the transpose if you can also simply use the third input argument for min?
Also, max(max(M')) is equivalent to max(max(M)) and max(M(:)) (and also to max(M,[],'all'), so you could even use that).

Rohan Singla el 17 de Abr. de 2020
function [mmr,mmm] = minimax(M)
a=M';
mmr=max(a,[],1)-min(a,[],1);
mmm= max(M(:)) - min(M(:));
end
##### 5 comentariosMostrar 3 comentarios más antiguosOcultar 3 comentarios más antiguos
Walter Roberson el 12 de Mayo de 2020
M' is conjugate transpose. Unless you are doing specialized linear algebra, it is recommended that you use .' instead of ' as .' is regular (non-conjugate) transpose.
Walter Roberson el 12 de Mayo de 2020

AYUSH MISHRA el 26 de Mayo de 2020
function [mmr,mmm]=minimax(M)
mmr=max(M')-min(M');
mmm=max(max(M'))-min(min(M'));
end
% here M' is use because when we are using M than mmr generate column matrix
SOLUTION
[mmr, mmm] = minimax([1:4;5:8;9:12])
mmr =
3 3 3
mmm =
11
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
saurav Tiwari el 11 de Jun. de 2020
whatttt, it's so easy code omg and i make it very difficult. Same on me

Anurag Verma el 26 de Mayo de 2020
function [mmr,mmm]=minimax(M)
a = max(M(1,:))-min(M(1,:));
b = max(M(2,:))- min(M(2,:));
c = max(M(3,:))- min(M(3,:));
mmr = [a,b,c];
mmm = max(M(:))-min(M(:));
what's wrong with this code. can anyone explain please it gives an error with the random matrix question?
##### 2 comentariosMostrar NingunoOcultar Ninguno
Rik el 26 de Mayo de 2020
Your code will only consider the first 3 rows. It will error for arrays that don't have 3 rows, and will return an incorrect result for arrays that have more than 3 rows.
You should read the documentation for max and min, and look through the other solutions on this thread for other possible strategies to solve this assignment.
saurav Tiwari el 11 de Jun. de 2020
yaa, RIK is right. your code can only work for 3 rows matrix but random matrix contain a matrix of rows>1 . ok so, you should have to make a code that can work for any type of matrix

Md Naim el 30 de Mayo de 2020
function [mmr, mmm]= minimax(M)
mmr = max(M')-min(M')
mmm = max(max(M'))-min(min(M'))
end
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

ROHAN SUTRADHAR el 6 de Jun. de 2020
function [mmr,mmm] = minimax(A)
X = A';
mmr = max(X([1:end],[1:end]))- min(X([1:end],[1:end]));
mmm = max(X(:))-min(X(:));
end
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

saurav Tiwari el 11 de Jun. de 2020
function [a,b]=minimax(M)
[m,n]=size(M);
x=1:m;
a=max(M(x,:)')-min(M(x,:)');
v=M(:);
b=max(v)-min(v);
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
saurav Tiwari el 11 de Jun. de 2020
most easiest code of the world

A.H.M.Shahidul Islam el 21 de Jul. de 2020
Editada: A.H.M.Shahidul Islam el 21 de Jul. de 2020
function [mmr,mmm]=minimax(M)
m=M';
mmr=abs(max(m)-min(m));
mmm=max(M(:))-min(M(:));
%works like a charm
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Stephen23 el 21 de Jul. de 2020
"works like a charm"
Does not work:
>> M = [1;2;4]
M =
1
2
4
>> minimax(M)
ans =
3

Akinola Tomiwa el 23 de Jul. de 2020
Function [mmr, mmm] = minmax(x)
mmr = (max(x, [], 2) - min(x, [], 2)';
%the prime converts it to a row matrix
mmm = (max(x(:)) - min(x(:));
end
##### 4 comentariosMostrar 2 comentarios más antiguosOcultar 2 comentarios más antiguos
Walter Roberson el 23 de Jul. de 2020
mmm = (max(x(:)) - min(x(:)) ;
1 2 3 21 2 3 21
The number indicates the bracket nesting level in effect "after" the corresponding character. You can see that you have one open bracket in effect at the end of the line.
youssef boudhaouia el 24 de Jul. de 2020
function [mmr,mmm]=minimax(M)
a=M';
ma=max(a);
mi=min(a);
mmr = ma - mi ;
mmm=max(max(M)) - min(min(M));
end
Here's my answer, as simple as possible and it works.

youssef boudhaouia el 24 de Jul. de 2020
function [mmr,mmm]=minimax(M)
a=M';
ma=max(a);
mi=min(a);
mmr = ma - mi ;
mmm=max(max(M)) - min(min(M));
end
here's my answer as simple as possible , it works!

R2018b

### Community Treasure Hunt

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

Start Hunting!

Translated by