multidimensional matrix optimization error
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
BOWEN LI
am 20 Jul. 2019
Kommentiert: BOWEN LI
am 24 Jul. 2019
Hello everyone,
I have an optimization variable
y=optimvar('y',[4,1],'Type','integer','LowerBound',0,'UpperBound',1);
and I want to put this "y" into a matrix which have 4 time periods, so i created a multidimensional matrix as this:
yi=y([ 1 2 3 4; 2 2 3 4;3 3 3 4;4 4 4 4]);
yi(:,:,2)= y([ 1 2 3 4; 2 2 3 4;3 3 3 4;4 4 4 4]);
yi(:,:,3)= y([ 1 2 3 4; 2 2 3 4;3 3 3 4;4 4 4 4]);
yi(:,:,4)= y([ 1 2 3 4; 2 2 3 4;3 3 3 4;4 4 4 4]);
where the third dimension is about time, which I have 4 years in my problem. While I run this code in matlab it says this is an illegal assignment, could anyone help me with that?
Thank you!
4 Kommentare
dpb
am 21 Jul. 2019
Bearbeitet: dpb
am 21 Jul. 2019
>> whos yi
Name Size Bytes Class Attributes
yi 4x4x4 512 double
>>
yi is a 4x4x4 array...I don't follow what your intention really is, just what you created is above.
I also don't fully understand the doc with optimvar and how the problem setup would work so am just throwing darts here--and the crystal ball is dark.
Akzeptierte Antwort
Kavya Vuriti
am 24 Jul. 2019
Hi,
From the question I understand that you created an optimization variable y and wants to create a 3-dimensional matrix yi in a specific layout where the 3rd dimension is time.
Try using the following code:
y=optimvar('y',[4,1,4],'Type','integer','LowerBound',0,'UpperBound',1);
yi=[y(1,1,1),y(2,1,1),y(3,1,1),y(4,1,1);y(2,1,1),y(2,1,1),y(3,1,1),y(4,1,1);y(3,1,1),y(3,1,1),y(3,1,1),y(4,1,1);y(4,1,1),y(4,1,1),y(4,1,1),y(4,1,1)];
yi(:,:,2)=[y(1,1,2),y(2,1,2),y(3,1,2),y(4,1,2);y(2,1,2),y(2,1,2),y(3,1,2),y(4,1,2);y(3,1,2),y(3,1,2),y(3,1,2),y(4,1,2);y(4,1,2),y(4,1,2),y(4,1,2),y(4,1,2)];
yi(:,:,3)=[y(1,1,3),y(2,1,3),y(3,1,3),y(4,1,3);y(2,1,3),y(2,1,3),y(3,1,3),y(4,1,3);y(3,1,3),y(3,1,3),y(3,1,3),y(4,1,3);y(4,1,3),y(4,1,3),y(4,1,3),y(4,1,3)];
yi(:,:,4)=[y(1,1,4),y(2,1,4),y(3,1,4),y(4,1,4);y(2,1,4),y(2,1,4),y(3,1,4),y(4,1,4);y(3,1,4),y(3,1,4),y(3,1,4),y(4,1,4);y(4,1,4),y(4,1,4),y(4,1,4),y(4,1,4)];
Hope it works.
For more information on creating multi-dimensional binary optimization variables, you can refer the following link: https://www.mathworks.com/help/optim/ug/optimvar.html#mw_cedf0526-03c6-46b9-aba3-a694d89d1003
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Get Started with Optimization Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!