Azzera filtri
Azzera filtri

summation operation for a matrix?

2 visualizzazioni (ultimi 30 giorni)
Azime Beyza Ari
Azime Beyza Ari il 4 Apr 2022
Hello everyone,
I have a matrix with dimensions 36x36. what i want to is this;
x(1,1)+x(1,2)+...+x(1,36) +x(2,1)+x(3,1)+x(4,1)+...+x(36,1) <= (somevalue)
I am using genetic algorithm solver. For another constraint i have, i did this;
con.sumrows=(sum(x,1)<=1);
Is there any simple solution for i want like above line? suggestions are welcomed.
Thank you in advance.

Risposta accettata

Voss
Voss il 4 Apr 2022
x = (1:36)+(1:36).' % some 36-by-36 matrix
x = 36×36
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
% add first row and first column (exlcuding first element)
sum(x(1,:))+sum(x(2:end,1))
ans = 1402
% or add first row and first column then subtract first element because it
% was included twice
sum(x(1,:))+sum(x(:,1))-x(1,1)
ans = 1402
  3 Commenti
Torsten
Torsten il 4 Apr 2022
Modificato: Torsten il 4 Apr 2022
I have a matrix with dimensions 36x36. what i want to is this;
x(1,1)+x(1,2)+...+x(1,36) +x(2,1)+x(3,1)+x(4,1)+...+x(36,1) <= (somevalue)
You don't have this matrix.
You must construct the matrix which implements this constraint.
In the matrix I set up for the other constraint, just set the ones at the correct positions, and you'll get the above constraint implemented:
There is no simpler way to do so.
You can have a look here for a simple example:
Azime Beyza Ari
Azime Beyza Ari il 4 Apr 2022
Yes, i tried that but since my objective function only uses 1296 variable adding y's to Z caused too much error. Instead i wanted to eliminte y and work on x's. Since the whole idea behind y's are being equal to x's summation.

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by