How can i use elements with equal indexes?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Azime Beyza Ari
il 10 Apr 2022
Commentato: Azime Beyza Ari
il 10 Apr 2022
Hello everyone, I am working on an constraint where i will only use the elements of an matrix if their indexes are equal like;
for i=1:36
for j=1:36
if i=j
M*x(i,j)-y(j)>=0
else
end
end
end
my matrix has 36x36 dimensions so need to go from 1 to 36.
this is what i did for y ;
y(:,1)
y is 36x1 so this works for y.
i i can not use any loops or conditions i am trying to write this only in one line! if there is a little tip like
x(do something here);
that is what i need.
Hope i can make what i need clear.
Thank you in advance!
0 Commenti
Risposta accettata
Più risposte (1)
Torsten
il 10 Apr 2022
Modificato: Torsten
il 10 Apr 2022
Put "-M" in the matrix of inequality constraints where x_jj is addressed and "+1" where y(j) is addressed.
Then you have set the constraint
-M*x_jj + y_j <= 0
or
M*x_jj - y_j >= 0
This will result in 36 new rows in the constraint matrix A and 36 new zeros in the vector b of the right-hand side.
3 Commenti
Torsten
il 10 Apr 2022
And
for i=1:36
constr(i) = M*x(i,i)-y(i) >= 0
end
does not work ?
Steven Lord
il 10 Apr 2022
So you only want to operate on diagonal elements of x?
x = magic(4)
y = [1; 2; 3; 4]
result = 2*diag(x) - y
n = 3;
spotcheck = [2*x(n, n)-y(n), result(n)] % These should match
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!