Ich habe ein großes Grafikprojekt debuggen und schließlich das Problem in den folgenden MWE reduziert. Irgendwie kehrt MATLAB's copyobj
die Reihenfolge der Grafikobjekte um, wenn sie in eine neue Figur kopiert werden.MATLAB copyobj kehrt die Reihenfolge der Objekte um?
X = [1 2; 4 4];
Y = [2 -4; -4 2];
figure;
hold on;
colors = [1 0 0; 0 1 0];
lines = [];
for idx = 1:size(X, 2)
l = plot(X(:, idx), Y(:, idx), 'Color', colors(idx, :), 'linewidth', 10);
lines = [lines l];
end
hold off;
gibt
Da die grüne Linie erwartet, die später auf der Oberseite ist der rote Linie gezogen wurde. Dann kopiere ich diese zwei Zeilen in eine neue Figur.
figure;
a = axes;
copyobj(lines, a);
view(a);
gibt
Nun ist die rot über dem grün.
Kennt jemand den Grund dafür? Kann ich die Reihenfolge der Objekte einfach umkehren, damit die Bestellung korrekt ist?