Filter löschen
Filter löschen

Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

intlinprog matrix creation help needed

1 Ansicht (letzte 30 Tage)
Taner Cokyasar
Taner Cokyasar am 11 Jul. 2016
Geschlossen: Stephen23 am 11 Jul. 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 Kommentare
Taner Cokyasar
Taner Cokyasar am 11 Jul. 2016
Bearbeitet: Taner Cokyasar am 11 Jul. 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.

Akzeptierte Antwort

Taner Cokyasar
Taner Cokyasar am 11 Jul. 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

Weitere Antworten (0)

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by