# Display optimization variable/solution

2 views (last 30 days)
Andra Vartolomei on 21 Aug 2022
Commented: Matt J on 23 Aug 2022
I am solving a finction minimizing the objective function. The optimization variable looks like this [3D array]
a=3; b=2; c=50;
costs_tasks = rand (3,2);
linoptim = optimproblem;
x = optimvar('x',a,b,c,'Type', 'integer','LowerBound',0,'UpperBound',1);
objfun = sum(sum(sum(x,3).*(costs_tasks),2),1);
linoptim.Objective = objfun;
sol = solve(linoptim)
Solving problem using intlinprog. LP: Optimal objective value is 0.000000. Optimal solution found. Intlinprog stopped at the root node because the objective value is within a gap tolerance of the optimal value, options.AbsoluteGapTolerance = 0 (the default value). The intcon variables are integer within tolerance, options.IntegerTolerance = 1e-05 (the default value).
sol = struct with fields:
x: [3×2×50 double]
There are also some constraints I consider.
By solving the objective function, there are certain pages (3rd dimension) with the value 1 and I would like to see them.
My question ist, how can I display the optimal variable?
##### 0 CommentsShow -2 older commentsHide -2 older comments

Sign in to comment.

### Accepted Answer

Matt J on 21 Aug 2022
pages=any(sol.x==1,[1,2]);
disp(sol.x(:,:,pages) )
##### 3 CommentsShow 1 older commentHide 1 older comment
Andra Vartolomei on 22 Aug 2022
I managed to adapt it, so that I get a Matrix with the positions where I have non-zero values:
ind = find(sol.x>0);
[i1, i2, i3] = ind2sub(size(sol.x), ind);
positions = [i1(:),i2(:),i3(:)]
Matt J on 23 Aug 2022
I'm glad, but please accept-click the answer to indicate tht your question is resolved.

Sign in to comment.

### Categories

Find more on Linear Least Squares in Help Center and File Exchange

R2022a

### Community Treasure Hunt

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

Start Hunting!