Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

intlinprog matrix creation help needed

1 vue (au cours des 30 derniers jours)
Taner Cokyasar
Taner Cokyasar le 11 Juil 2016
Clôturé : Stephen23 le 11 Juil 2016
Hello,
I have the following sample vector named Zvalues:
Variable Name(Zim) Zvalues
Z11 0
Z12 0
Z13 1
Z21 0
Z22 1
Z23 0
Z31 0
Z32 1
Z33 0
I have created a zero 3x9 sized matrix as following:
Y= zeros(3, 9);
I want to fill this matrix with an if condition, as the following example:
if Zim=1, Yim=1
Y13 = 1 because Z13 = 1
Y22 = 1 because Z22 = 1
Y32 = 1 because Z32 = 1
The following matrix is what I want to reach at the end. 'Y's represent variable names, they are not a part of the matrix .
Y11 Y12 Y13 Y21 Y22 Y23 Y31 Y32 Y33
0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1 0
In other words, I want to formulate an Aeq matrix for coefficients of Y(im) variables given in the following equality constraint (to use with intlinprog):
Y(im)=t(m)-Z(im)*f(i) %construct this constraint for variables if Z(im)=1 (Zim is same as Zvalues)
%There is nothing to do with the RHS of the equality. It is just given to make the question more clear.
As seen in the equation, coefficients of all Y(im) variables are 1. In my sample I have 9 Y(im) variables, since i=3 and m=3. I will have larger dimensions. So, I need a MATLAB formulation for this mathematical form.
Thanks for help.
  2 commentaires
Walter Roberson
Walter Roberson le 11 Juil 2016
Taner Cokyasar
Taner Cokyasar le 11 Juil 2016
Modifié(e) : Taner Cokyasar le 11 Juil 2016
I misstated everything in that question. So, I felt like opening a new topic could be better. If you may help me, I would really appreciate it.

Réponse acceptée

Taner Cokyasar
Taner Cokyasar le 11 Juil 2016
Answer by Stephen Cobeldick 28 minutes ago Edited by Stephen Cobeldick 27 minutes ago Accepted answer
Just use sub2ind:
>> Z = [0;0;1;0;1;0;0;1;0] Z = 0 0 1 0 1 0 0 1 0 >> Y = zeros(3,9); >> Y(sub2ind(size(Y),1:nnz(Z),find(Z).')) = 1 Y = 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0

Plus de réponses (0)

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by