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,

14 visualizaciones (últimos 30 días)
Sahil Deshpande el 30 de Mayo de 2020
Cerrada: Cris LaPierre el 5 de Feb. de 2024
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])
My answer to this:
function [mmr,mmm] = minimax(M)
mmr = abs(max(M.')-min(M.'));
mmm = max(max(M)) - min(min(M));
This is shortest code I could write. What do you guys think of this?
##### 14 comentariosMostrar 12 comentarios más antiguosOcultar 12 comentarios más antiguos
khaula el 7 de Nov. de 2022
not working still, can any one code it rightly please??
DGM el 26 de Feb. de 2023
Editada: DGM el 26 de Feb. de 2023

### Respuestas (17)

Prasad Reddy el 30 de Mayo de 2020
function [mmr,mmm] = minimax(M)
a=max(M');
b=min(M');
mmr=a-b;
c=max(a);
d=min(b);
mmm=c-d;
end
% This is what i came up with. Please give a upthumb if it works.
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Alexandar el 24 de Jun. de 2022
How come you put a single apostrophe for this: M'. I am having trouble understanding that portion since I am new to coding.
Rik el 24 de Jun. de 2022
The apostrophe is the operator to determine the conjugate. In the case of non-complex numbers that means swapping the rows with columns.

Rushi Auti el 31 de Jul. de 2020
function [mmr,mmm] = minimax(M)
a = max(M,[],2);
b = min(M,[],2);
c= a-b;
d = c';
mmr = c'
e = max(M,[],'all');
f = min(M,[],'all');
mmm = e-f
##### 12 comentariosMostrar 10 comentarios más antiguosOcultar 10 comentarios más antiguos
Renz Reven Mariveles el 11 de Jun. de 2022
Thank youu. omg I have been searching for so longg. I HAVE FINALLY FIND THE ANSWER.
Shanu el 24 de Jun. de 2022
Thanku so much😊

Ahmed Salmi el 17 de Jul. de 2020
function [mmr,mmm]=minimax(m)
mmr=max(m')-min(m');
mmm=max(m,[],'all')-min(m,[],'all');
end
or
function [mmr,mmm]=minimax(m)
a=max(m');
b=min(m');
mmr=a-b;
c=max(m,[],'all');
d=min(m,[],'all');
mmm=c-d;
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Stephen23 el 17 de Jul. de 2020
Incorrect output:
>> M = [1;2;3]
M =
1
2
3
>> minimax(M)
ans = 2

Harry Virani el 12 de Ag. de 2020
function [mmr, mmm] = minimax(input)
matrix = [input];
maxr = max(matrix.');
minr = min(matrix.');
mmr = maxr - minr;
maxm = max(maxr);
minm = min(minr);
mmm = maxm - minm;
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Stephen23 el 17 de Ag. de 2020
Fails for any matrix with only one column:
>> minimax([1;2;3])
ans = 2

durgesh patel el 4 de En. de 2021
function [mmr , mmm] = minimax(M)
mmr = max(M') - min(M');
mmm = max(M,[],'all')- min(M,[],'all');
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Stephen23 el 4 de En. de 2021
Fails for any matrix with only one column:
minimax([1;2;3])
ans = 2

Shamith Raj Shetty el 4 de En. de 2021
Editada: DGM el 29 de Mzo. de 2023
function [mmr,mmm] = minimax(M)
N = M';
mmr = max(N)-min(N);
mmm = max(max(N))-min(min(N));
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Rik el 4 de En. de 2021
Your function fails for column vectors.
M = [1;2;3];
minimax(M) % ans = [0,0,0]
ans = 2
M=[1:4;5:8;9:12];
minimax(M) % ans = [3,3,3]
ans = 1×3
3 3 3
Also, what is the point of posting this answer? What does it teach? Why should it not be deleted?

Francisco Moto el 6 de Feb. de 2021
##### 2 comentariosMostrar NingunoOcultar Ninguno
Francisco Moto el 6 de Feb. de 2021
My function works but it failed the random question . Need help
Stephen23 el 6 de Feb. de 2021
@Francisco Moto: your function does not do what your assignment requires. In particular:
• Your function accepts one input. It then ignores this input completely.
• You have hard-coded values for one specific matrix. The assignment requests a general solution.
Most of the operations in your function are not used for anything.

Balakrishna Peram el 8 de Jun. de 2021
Editada: Stephen23 el 8 de Jun. de 2021
on a General sense this should be the answer
function [mmr,mmm] = minimax(M)
mmr=abs(max(M,[],2)-min(M,[],2))
mmm=max(M,[],'all')-min(M,[],'all')
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Fazal Hussain el 19 de En. de 2022
Editada: DGM el 29 de Mzo. de 2023
There is some mistake in second line but now it will give you output okay.
thanks
function [mmr,mmm] = minimax(M)
mmr=[abs(max(M,[],2)-min(M,[],2))]';
mmm=max(M,[],'all')-min(M,[],'all');
end

Chappa Likhith el 25 de Jun. de 2021
In editor window:
function [mmr,mmm]=minimax(M)
mmr=difference(M') %M' is a tranpose of M. If you want to know why this.. go to COMPUTER PROGRAMMING WITH MATLAB book of author J. MICHAEL FITZPATRICK AND ÁKOS LÉDECZI... go to page 90 tabel 2.7
mmm=difference(M(:));
function a=difference(v)
a=max(v)-min(v);
In comand window:
>>>[mmr, mmm] = minimax([1:4;5:8;9:12])
% you can write any other matrix too
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Chappa Likhith el 25 de Jun. de 2021
May be you are correct. I'm not that much familiar with matlab and I don't know for what M.' is used for... This is the question in coursera assignment of vanderbilt university. This question appears after completion of few topics where the topic of M.' is not covered.... My answer is for them who are facing the same situation like me. Because I too didn't got the answer for a long time and I saw your solution(I think so) I didn't understand what's going on in your code. I hope you understand my situation...
Walter Roberson el 25 de Jun. de 2021
I have not posted a solution for this, as it is a homework question, and I avoid posting complete answers to homework questions.
The difference between M' and M.' is that M.' is plain transpose, but M' is conjugate transpose.
M = [1+2i 2-3i 4]
M =
1.0000 + 2.0000i 2.0000 - 3.0000i 4.0000 + 0.0000i
M'
ans =
1.0000 - 2.0000i 2.0000 + 3.0000i 4.0000 + 0.0000i
M.'
ans =
1.0000 + 2.0000i 2.0000 - 3.0000i 4.0000 + 0.0000i
Notice that in the M' that the signs of the complex part have changed but in the M.' version they do not change. You can see from the final entry that the result is the same for values that have no complex part.
As a matter of style, I recommend that you always use .' unless you specifically need conjugate transpose: using .' will save people having to think a lot about your code to figure out whether you should have used .' instead of '

Vetrimurasu Baskaran el 6 de Jun. de 2022
Editada: DGM el 26 de Feb. de 2023
function [mmr,mmm] = minimax(M)
r = size(M);
val = r(1);
mmr = inf;
for i = 1:val
mmr(i) = max(M(i,1:end)) - min(M(i,1:end));
end
A = M(:);
mmm = max(A)-min(A);
end
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Adwaith G el 27 de Jun. de 2022
I am new to Matlab , so i am explaining what i learned here.
Initially i solved it by using the code
function [mmr,mmm] = minimax(M)
mmr = max(M.')-min(M.');
mmm = max(M(:))-min(M(:));
# Both M' and M.' gives the transpose of a matrix. However, M' gives the conjugate transpose. So, I suggest that u only use M.'
However, this code fails if the matrix has only 1 column. So, i used the code
function [mmr,mmm] = minimax(M)
mmk = max(M,[],2)-min(M,[],2);
mmr = mmk.';
mmm = max(M(:))-min(M(:));
#max(M,[],2) computes the max value of each row and returns a column vector and in order to get a row vector, we take the transpose.
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Muhammad el 22 de Jul. de 2022
Editada: Muhammad el 22 de Jul. de 2022
function [mmr,mmm]=minimax(M)
mmr=[abs([max(M.')-min(M.')])]
mmm=abs([(max(M(:))-(min(M(:)))])
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Walter Roberson el 22 de Jul. de 2022
What purpose do those [ ] serve in the body of the code?
mmm=abs([(max(M(:))-(min(M(:)))])
123 4 5 43 4 5 6 54321
You have one more open bracket than you have close brackets

Arah Cristal el 11 de Oct. de 2022
Editada: DGM el 29 de Mzo. de 2023
function [mmr,mmm] = minimax (m)
mmr = abs(max(m.')-min(m.'))
mmm = (max(m,[],'all')-min(m,[],'all'))
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Stephen23 el 7 de Nov. de 2022
Fails for any matrix with only one column:
minimax([1;2;3])
ans = 2
function [mmr,mmm] = minimax (m)
mmr = abs(max(m.')-min(m.'));
mmm = (max(m,[],'all')-min(m,[],'all'));
end

Muhammad Faizan Ahmed el 18 de Dic. de 2022
Movida: DGM el 29 de Mzo. de 2023
function [mmr, mmm] = minimax(M)
mmr = max(M')-min(M');
mmm = max(max(M)) - min(min(M));
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Hassan el 29 de Mzo. de 2023
function [mmr,mmm]=minimax(M)
mmr=[abs(max(M(1:end,:).')-min(M(1:end,:).'))];
mmm=max(M(:))-min(M(:));
end
##### 2 comentariosMostrar NingunoOcultar Ninguno
Stephen23 el 29 de Mzo. de 2023
Fails for any matrix with only one column:
minimax([1;2;3])
ans = 2
function [mmr,mmm]=minimax(M)
mmr=[abs(max(M(1:end,:).')-min(M(1:end,:).'))];
mmm=max(M(:))-min(M(:));
end
DGM el 29 de Mzo. de 2023
Editada: DGM el 29 de Mzo. de 2023
• There's no point in doing abs(max(X)-min(X)). Think about why.
• There's no point in doing X(1:end,:). Think about why.
• There's no point in doing [X]. Think about why.
• Why reshape/transpose the array multiple times instead of just once?
How do so many people keep writing these same nonsense things unless:
• they're just building collages of code based on other bad code
• people somehow gravitate to these superfluous decorations when they want to make their code appear superficially unique for some bizarre purpose
This isn't where you turn in your assignment. There's little merit in posting something unless it correctly answers the question or provides the reader with new information. It should then stand to reason that there's little merit in repeating prior examples which have been demonstrated to be incorrect.
If you're going to post an answer in a thread full of junk answers, try to break that trend. Post an answer which is tested and documented. Explain why your answer is different than others (both strengths and weaknesses are important to know). Since you can run your code in the editor, you have the opportunity to demonstrate that it does what you say it does.

JASON el 27 de Oct. de 2023
Movida: Stephen23 el 27 de Oct. de 2023
function [mmr,mmm] = minimax(M);
mmr=(max(M,[],2)-min(M,[],2))';
mmm=max(M,[],"all")-min(M,[],"all");
end
% this is what i did
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Aramis el 5 de Feb. de 2024
Editada: Aramis el 5 de Feb. de 2024
function [x, y] = minimax(M)
x = (max(M,[],2) - min(M,[],2))';
y = max(M,[], "all")- min(M,[], "all");
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
DGM el 5 de Feb. de 2024
While this is correct, it's not really any different than the answer above it. The only difference is the change in output variable names, which are (I assume) dictated by the assignment. If the grader actually requires the outputs to be mmr, mmm respectively, then this would be a problem. Fixing the variable names would make this a duplicate answer.

La pregunta está cerrada.

### Community Treasure Hunt

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

Start Hunting!

Translated by