ich nehme es mit mit dem Maximalanzeigegröße von Matlab erkannt zu tun hat und das pi xel Dichte Ihres Systems.
Auf meinem Matlab R2013a, Windows 7, mit einem Bildschirm 1900x1200, kann ich eine größere Zahl als man bekommt, aber es wird immer noch abgeschnitten:
%% // MATLAB R2013A - Windows 7, 1900x1200pixels
set(gcf,'units','inches','position',[1 -5 6 15])
get(gcf,'position')
get(gcf,'OuterPosition')
kehrt:
ans =
1.00 -5.00 6.00 11.81
ans =
0.92 -5.08 6.17 12.71
Meine maximale vertikale Figurgröße wurde bei 11.81
Zoll geschnitten. Nun, das ist das Innere einer Matlab-Figur. Die tatsächliche Größe einschließlich Titelleiste und Rahmen wird durch die Eigenschaft OuterPosition
angegeben.
Nun betrachten:
>> get(0,'ScreenSize')
ans =
1.00 1.00 1920.00 1200.00
>> get(0,'ScreenPixelsPerInch')
ans =
96.00
Wenn wir das tun 1200pixel/96ppi = 12,5. Mit dieser Bildschirmdichte kann Matlab nur 12,5 Zoll Grafik anzeigen. Dies wird auch offensichtlich Modus, wenn Sie das Gerät auf ‚Pixel‘ eingestellt:
set(gcf,'units','inches','position',[1 -5 6 15])
set(gcf,'units','Pixels')
get(gcf,'position')
get(gcf,'OuterPosition')
ans =
97.00 -479.00 576.00 1134.00
ans =
89.00 -487.00 592.00 1220.00
Die Figur wurde genau 1220pixels abgeschnitten (die Zoll-Einheit ist nur eine Umwandlung, Matlab Basiseinheit in Pixeln arbeitet). Ich vermute, dass die zusätzlichen 20 Pixel eine zusätzliche Erlaubnis für die Titelleiste sind.
Jetzt mit Ihren Zahlen, ich habe nicht die outerposition
Ihrer Figur, aber sogar die innere Position der Figur entspricht etwa Ihrer Bildschirmgröße (900px * 96ppi = 9.375 Zoll). Versuchen Sie, die Einheiten zurück zu Pixels
zu zwingen, erhalten Sie die OuterPosition
der Figur und ich wäre nicht überrascht, wenn Sie 920pixels bekommen.
Nun scheint es nur über die für ältere Versionen von Matlab müssen sich Sorgen zu machen. Auf der gleiche Maschine (Win 7, 1900x1200px), mit Matlab R2015b, nicht mehr automatischen Beschneiden:
%% // MATLAB R2015B - Windows 7, 1900x1200pixels
set(gcf,'units','inches','position',[1 -5 6 15])
get(gcf,'position')
get(gcf,'OuterPosition')
ans =
1.00 -5.00 6.00 15.00
ans =
0.92 -5.08 6.17 15.40
set(gcf,'units','Pixels')
get(gcf,'position')
get(gcf,'OuterPosition')
ans =
97.00 -479.00 576.00 1440.00
ans =
89.00 -487.00 592.00 1478.00
Der neue Grafik-Engine von Matlab scheint diese Beschränkung aufgehoben zu haben, ist meine Figur jetzt größer, dass meine Bildschirmgröße (ob Sie Pixel oder Zoll betrachten).
Dies verwendet 'export_fig' oder' print'? – Suever