MATLAB Answers

create matrix of integers with specified sum in column and row

67 views (last 30 days)
Zaid Ali Basharat
Zaid Ali Basharat on 23 Feb 2021
Edited: Matt J on 24 Feb 2021
I want to create a 4x4 matrix of integers such that:-
Say, M=[ A B C D ; E F G H ; I J K L ; M N O P ]
A+B+C+D>=value from user
A+B+C+D<=value from user
A+E+I+M>=value from user
A+E+I+M<=value from user
and likewise for all columns and rows.
  1 Comment
Rik
Rik on 23 Feb 2021
What have you tried?
Also, don't forget that this might not be possible for some values provided by the user.

Sign in to comment.

Answers (1)

Matt J
Matt J on 23 Feb 2021
You can try to formulate it as an integer program.
M=optimvar('M',[4,4],'type','integer');
Constraints.columns=sum(M,1)<=colvalues;
Constraints.rows=sum(M,2)<=rowvalues;
prob=optimproblem('Objective', 0,'Constraints',Constraints );
sol=solve(prob)
  16 Comments
Matt J
Matt J on 24 Feb 2021
The solver will tell you if it is possible for the given set of input ranges. If it returns. sol.M=[], then it is not possible.

Sign in to comment.

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!