MATLAB Answers

matrix related matlab query

51 views (last 30 days)
Siddharth Vidyarthi
Siddharth Vidyarthi on 22 Mar 2019
Answered: ANDIE MEDDAUGH on 7 Jul 2021
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
  2 Comments
Sahil Deshpande
Sahil Deshpande on 30 May 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

Sign in to comment.

Answers (10)

KETAN PATEL
KETAN PATEL on 11 Jun 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 Comments
Ammara Haider
Ammara Haider on 17 Dec 2019
thanks for your kind help

Sign in to comment.


Rose Potter
Rose Potter on 4 Apr 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 Comments
Steven Lord
Steven Lord on 25 Apr 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.

Sign in to comment.


Rose Potter
Rose Potter on 4 Apr 2019
  4 Comments
VIJAY VIKAS MANGENA
VIJAY VIKAS MANGENA on 13 Aug 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'

Sign in to comment.


AYUSH GURTU
AYUSH GURTU on 28 May 2019
function [mmr, mmm] = minimax(M)
mmr = (max(M,[],2)-min(M,[],2))';
mmm = max(M(:))-min(M(:));
end
  3 Comments
Ashitha Nair
Ashitha Nair on 15 Jun 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.

Sign in to comment.


Harsha Vyshalli
Harsha Vyshalli on 22 May 2020
function [mmr, mmm] = minimax(A);
B = A';
maxi= max(B);
mini = min(B);
mmr = max(B) - min(B);
mmm = max(maxi) - min(mini);
end

Saurabh Bhardwaj
Saurabh Bhardwaj on 8 Jun 2020
function [a,b]=minimax(M)
A= min(M,[],2);
B= max(M,[],2);
a=(B-A)';
b=max(B)-min(A);
end

Ashitha Nair
Ashitha Nair on 15 Jun 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.
  1 Comment
Dorbala sankarshana
Dorbala sankarshana on 23 Jun 2020
can you please explain this?

Sign in to comment.


anuj petkar
anuj petkar on 13 Sep 2020
function [mmr,mmm]=minimax(M)
A=(M(:,:))';
mmr=max(A(:,:))-min(A(:,:));
mmm=max(max(A))-min(min(A));
end

Amit Jain
Amit Jain on 24 Oct 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

ANDIE MEDDAUGH
ANDIE MEDDAUGH on 7 Jul 2021
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.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by