matrix related matlab query

조회 수: 4 (최근 30일)
Siddharth Vidyarthi
Siddharth Vidyarthi 2019년 3월 22일
편집: DGM 2023년 2월 27일
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
Sahil Deshpande
Sahil Deshpande 2020년 5월 30일
편집: Walter Roberson 2020년 6월 8일
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

댓글을 달려면 로그인하십시오.

답변 (9개)

KETAN PATEL
KETAN PATEL 2019년 6월 11일
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
KETAN PATEL
KETAN PATEL 2019년 6월 14일
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
Ammara Haider 2019년 12월 17일
thanks for your kind help

댓글을 달려면 로그인하십시오.


Saurabh Bhardwaj
Saurabh Bhardwaj 2020년 6월 8일
function [a,b]=minimax(M)
A= min(M,[],2);
B= max(M,[],2);
a=(B-A)';
b=max(B)-min(A);
end
  댓글 수: 1
DGM
DGM 2023년 2월 27일
.' 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.

댓글을 달려면 로그인하십시오.


RP
RP 2019년 4월 4일
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
Crystal Judd Unson
Crystal Judd Unson 2021년 4월 25일
편집: Crystal Judd Unson 2021년 4월 25일
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
Steven Lord 2021년 4월 25일
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.

댓글을 달려면 로그인하십시오.


RP
RP 2019년 4월 4일
  댓글 수: 4
sneha sharma
sneha sharma 2019년 9월 10일
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
VIJAY VIKAS MANGENA 2020년 8월 13일
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'

댓글을 달려면 로그인하십시오.


AYUSH GURTU
AYUSH GURTU 2019년 5월 28일
function [mmr, mmm] = minimax(M)
mmr = (max(M,[],2)-min(M,[],2))';
mmm = max(M(:))-min(M(:));
end
  댓글 수: 3
RUSHI SHAH
RUSHI SHAH 2020년 3월 2일
Can you please explain the syntax for mmr?
Ashitha Nair
Ashitha Nair 2020년 6월 15일
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.

댓글을 달려면 로그인하십시오.


Ashitha Nair
Ashitha Nair 2020년 6월 15일
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
Dorbala sankarshana
Dorbala sankarshana 2020년 6월 23일
can you please explain this?
DGM
DGM 2023년 2월 27일
Why would you take ceil()? That will give you the wrong result for non-integer inputs.

댓글을 달려면 로그인하십시오.


anuj petkar
anuj petkar 2020년 9월 13일
function [mmr,mmm]=minimax(M)
A=(M(:,:))';
mmr=max(A(:,:))-min(A(:,:));
mmm=max(max(A))-min(min(A));
end

Amit Jain
Amit Jain 2020년 10월 24일
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
DGM
DGM 2023년 2월 27일
A(1:end,1:end)
is the same as
A

댓글을 달려면 로그인하십시오.


ANDIE MEDDAUGH
ANDIE MEDDAUGH 2021년 7월 7일
편집: DGM 2023년 2월 27일
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.

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by