Skip to content

Commit 3d814c8

Browse files
authored
Merge pull request #2318 from opencobra/develop
Develop
2 parents 89cce26 + 48d302d commit 3d814c8

File tree

91 files changed

+8814
-2461
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+8814
-2461
lines changed

docs/source/installation/compatMatrix.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Linux Ubuntu
55
~~~~~~~~~~~~
66

77
+-------------------+--------------------+--------------------+--------------------+--------------------+
8-
| SolverName | R2021b | R2021a | R2020b | R2020a |
8+
| SolverName | R2023b | R2021b | R2020b | R2020a |
99
+===================+====================+====================+====================+====================+
1010
| IBM CPLEX 20.10 | |x| | |x| | |x| | |x| |
1111
+-------------------+--------------------+--------------------+--------------------+--------------------+
@@ -17,7 +17,7 @@ Linux Ubuntu
1717
+-------------------+--------------------+--------------------+--------------------+--------------------+
1818
| TOMLAB CPLEX 8.6 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
1919
+-------------------+--------------------+--------------------+--------------------+--------------------+
20-
| MOSEK 9.2 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
20+
| MOSEK 10.1 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
2121
+-------------------+--------------------+--------------------+--------------------+--------------------+
2222
| GLPK | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
2323
+-------------------+--------------------+--------------------+--------------------+--------------------+
@@ -42,7 +42,7 @@ macOS 10.13+
4242
+-------------------+--------------------+--------------------+--------------------+--------------------+
4343
| TOMLAB CPLEX 8.6 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
4444
+-------------------+--------------------+--------------------+--------------------+--------------------+
45-
| MOSEK 9.2 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
45+
| MOSEK 10.1 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
4646
+-------------------+--------------------+--------------------+--------------------+--------------------+
4747
| GLPK | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
4848
+-------------------+--------------------+--------------------+--------------------+--------------------+
@@ -68,7 +68,7 @@ Windows 10
6868
+-------------------+--------------------+--------------------+--------------------+--------------------+
6969
| TOMLAB CPLEX 8.6 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
7070
+-------------------+--------------------+--------------------+--------------------+--------------------+
71-
| MOSEK 9.2 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
71+
| MOSEK 10.1 | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
7272
+-------------------+--------------------+--------------------+--------------------+--------------------+
7373
| GLPK | |white_check_mark| | |white_check_mark| | |white_check_mark| | |white_check_mark| |
7474
+-------------------+--------------------+--------------------+--------------------+--------------------+

external/base/plots/+HCP

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 458a25aab2574857a06ec32ba1e6650e32410fd7
+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
2+
% What can Panel do?
3+
%
4+
% This demo just shows off what Panel can do. It is not
5+
% intended as part of the tutorial - this begins in
6+
% demopanel2.
7+
%
8+
% (a) It's easy to create a complex layout
9+
% (b) You can populate it as you would a subplot layout
10+
%
11+
% Now, move on to demopanel2 to learn how to use panel.
12+
13+
14+
15+
%% (a)
16+
17+
% clf
18+
figure(1)
19+
clf
20+
21+
% create panel
22+
p = panel();
23+
24+
% layout a variety of sub-panels
25+
p.pack('h', {1/3 []})
26+
p(1).pack({2/3 []});
27+
p(1,1).pack(3, 2);
28+
p(2).pack(6, 2);
29+
30+
% set margins
31+
p.de.margin = 2;
32+
p(1,1).marginbottom = 12;
33+
p(2).marginleft = 20;
34+
p.margin = [13 10 2 2];
35+
36+
% and some properties
37+
p.fontsize = 8;
38+
39+
40+
41+
%% (b)
42+
43+
% data set 1
44+
for m = 1:3
45+
for n = 1:2
46+
47+
% prepare sample data
48+
t = (0:99) / 100;
49+
s1 = sin(t * 2 * pi * m);
50+
s2 = sin(t * 2 * pi * n * 2);
51+
52+
% select axis - see data set 2 for an alternative way to
53+
% access sub-panels
54+
p(1,1,m,n).select();
55+
56+
% plot
57+
plot(t, s1, 'r', 'linewidth', 1);
58+
hold on
59+
plot(t, s2, 'b', 'linewidth', 1);
60+
plot(t, s1+s2, 'k', 'linewidth', 1);
61+
62+
% finalise axis
63+
axis([0 1 -2.2 2.2]);
64+
set(gca, 'xtick', [], 'ytick', []);
65+
66+
end
67+
end
68+
69+
% label axis group
70+
p(1,1).xlabel('time (unitless)');
71+
p(1,1).ylabel('example data series');
72+
73+
% data set 2
74+
source = 'XYZXYZ';
75+
76+
% an alternative way to access sub-panels is to first get a
77+
% reference to the parent...
78+
q = p(2);
79+
80+
% loop
81+
for m = 1:6
82+
for n = 1:2
83+
84+
% select axis - these two lines do the same thing (see
85+
% above)
86+
% p(2, m, n).select();
87+
q(m, n).select();
88+
89+
% prepare sample data
90+
data = randn(100, 1) * 0.4;
91+
92+
% do stats
93+
stats = [];
94+
stats.source = source(m);
95+
stats.binrange = [-1 1];
96+
stats.xtick = [-0.8:0.4:0.8];
97+
stats.ytick = [0 20];
98+
stats.bincens = -0.9:0.2:0.9;
99+
stats.values = data;
100+
stats.freq = hist(data, stats.bincens);
101+
stats.percfreq = stats.freq / length(data) * 100;
102+
stats.percpeak = 30;
103+
104+
% plot
105+
demopanel_minihist(stats, m == 6, n == 1);
106+
107+
end
108+
end
109+
110+
% label axis group
111+
p(2).xlabel('data value (furlongs per fortnight)');
112+
p(2).ylabel('normalised frequency (%)');
113+
114+
% data set 3
115+
p(1, 2).select();
116+
117+
% prepare sample data
118+
r1 = rand(100, 1);
119+
r2 = randn(100, 1);
120+
121+
% plot
122+
plot(r1, r1+0.2*r2, 'k.')
123+
hold on
124+
plot([0 1], [0 1], 'r-')
125+
126+
% finalise axis
127+
xlabel('our predictions');
128+
ylabel('actual measurements')
129+
130+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
2+
% Basic use. Panel is just like subplot.
3+
%
4+
% (a) Create a grid of panels.
5+
% (b) Plot into each sub-panel.
6+
7+
8+
9+
%% (a)
10+
11+
% create a NxN grid in gcf (this will create a figure, if
12+
% none is open).
13+
%
14+
% you can pass the figure handle to the constructor if you
15+
% need to attach the panel to a particular figure, as:
16+
%
17+
% p = panel(h_figure)
18+
%
19+
% NB: you can use this code to compare using panel() with
20+
% using subplot(). you should find they do much the same
21+
% thing in this case, but with a slightly different layout.
22+
23+
N = 2;
24+
use_panel = 1;
25+
clf
26+
27+
% PREPARE
28+
if use_panel
29+
p = panel();
30+
p.pack(N, N);
31+
end
32+
33+
34+
35+
%% (b)
36+
37+
% plot into each panel in turn
38+
39+
for m = 1:N
40+
for n = 1:N
41+
42+
% select one of the NxN grid of sub-panels
43+
if use_panel
44+
p(m, n).select();
45+
else
46+
subplot(N, N, m + (n-1) * N);
47+
end
48+
49+
% plot some data
50+
plot(randn(100,1));
51+
52+
% you can use all the usual calls
53+
xlabel('sample number');
54+
ylabel('data');
55+
56+
% and so on - generally, you can treat the axis panel
57+
% like any other axis
58+
axis([0 100 -3 3]);
59+
60+
end
61+
end
62+
63+
64+
+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
2+
% You can nest Panels as much as you like.
3+
%
4+
% (a) Create a grid of panels.
5+
% (b) Plot into three of the sub-panels.
6+
% (c) Create another grid in the fourth.
7+
% (d) Plot into each of these.
8+
9+
10+
11+
%% (a)
12+
13+
% create a panel in gcf.
14+
%
15+
% "p" is called the "root panel", which is the special panel
16+
% whose parent is the figure window (usually), rather than
17+
% another panel.
18+
p = panel();
19+
20+
% pack a 2x2 grid of panels into it.
21+
p.pack(2, 2);
22+
23+
24+
25+
%% (b)
26+
27+
% plot into the first three panels
28+
for m = 1:2
29+
for n = 1:2
30+
31+
% skip the 2,2 panel
32+
if m == 2 && n == 2
33+
break
34+
end
35+
36+
% select the panel (create an axis, and make that axis
37+
% current)
38+
p(m, n).select();
39+
40+
% plot some stuff
41+
plot(randn(100,1));
42+
xlabel('sample number');
43+
ylabel('data');
44+
axis([0 100 -3 3]);
45+
46+
end
47+
end
48+
49+
50+
51+
%% (c)
52+
53+
% pack a further grid into p(2, 2)
54+
%
55+
% all panels start as "uncommitted panels" (even the root
56+
% panel). the first time we "select()" one, we commit it as
57+
% an "axis panel". the first time we "pack()" one, we commit
58+
% it as a "parent panel". once committed, it can't change
59+
% into the other sort.
60+
%
61+
% this call commits p(2,2) as a parent panel - the six
62+
% children it creates all start as uncommitted panels.
63+
p(2, 2).pack(2, 3);
64+
65+
66+
67+
%% (d)
68+
69+
% plot into the six new sub-sub-panels
70+
for m = 1:2
71+
for n = 1:3
72+
73+
% select the panel - this commits it as an axis panel
74+
p(2, 2, m, n).select();
75+
76+
% plot some stuff
77+
plot(randn(100,1));
78+
xlabel('sample number');
79+
ylabel('data');
80+
axis([0 100 -3 3]);
81+
82+
end
83+
end
84+
85+
% note this alternative, equivalent, way to reference a
86+
% sub-panel
87+
p_22 = p(2, 2);
88+
89+
% plot another bit of data into the six sub-sub-panels
90+
for m = 1:2
91+
for n = 1:3
92+
93+
% select the panel
94+
p_22(m, n).select();
95+
96+
% plot more stuff
97+
hold on
98+
plot(randn(100,1)*0.3, 'r');
99+
100+
end
101+
end
102+
103+
104+
105+
106+

0 commit comments

Comments
 (0)