How to use an optimization expression if in a function?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Diego Cecchinato
am 17 Jul. 2020
Bearbeitet: Diego Cecchinato
am 20 Jul. 2020
Hi everyone!
I'm new to Matlab and i'm trying to write a function that is used in a problem based optimization.
This is the code that i wrote:
function [array] = getmax (matrix)
row = size(matrix,1);
column = size(matrix,2);
array = optimexpr;
for i=1:1:row
maxr = 0;
for j=1:1:column
if matrix(i,j) >= maxr
maxr = matrix(i,j)
end
end
array(i,1) = maxr;
end
end
Matrix is an optimization expression (es. 4 row and 5 column)
Array is the optimization expression that i want to get as the result of the function. (in this example it should be 4 row 1 column with tha max value of each matrix's row).
If i run this code i get "Conversion to logical from optim.problemdef.OptimizationInequality is not possible" in the if line.
I read about the big-M method, but i can't apply that method to my problem. (There's a lot about the big-M method for constrain but not a lot for function).
Can someone help me? I think it's a very simple function but i'm a newbie :(
Thanks
0 Kommentare
Akzeptierte Antwort
Matt J
am 17 Jul. 2020
You cannot express such an operation through the problem-based framework. If you are trying to solve a minimax problem, then you should use fminimax()
1 Kommentar
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

