2016-06-29 6 views
1

Betrachten Sie das folgende matrixplotLöschen der diagnal Plots der plotmatrix

randdata = rand(1000,3); 
[~,ax] = plotmatrix(randdata) 

Jetzt zum Beispiel, wenn ich die diagnol Plots löschen wollen, ich bin mit dem folgenden Verfahren

ClrIndx = find(eye(size(randdata,2))) 

ClrIndx = 

    1 
    5 
    9 

cla(ax(ClrIndx)) 

aber die diagnol Plots arent wird gelöscht, nur um sicher zu sein, dass ich die Achsen Griffe

double(ax) 

ans = 

    0.0029 3.0029 6.0029 
    1.0029 4.0029 7.0029 
    2.0029 5.0029 8.0029 

double(ax(ClrIndx)) 

ans = 

    0.0029 
    4.0029 
    8.0029 

was bestätigt, ich habe gehen t die rechten Achsen Griffe, aber immer noch die cla() Befehl löscht nicht die Diagnose-Plots, was mache ich falsch?

Antwort

2

Stellt sich heraus, dass es eine Menge Achsen-Magie mit plotmatrix geht. Betrachtet man die Hilfe, stellt sich heraus, dass es mehrere Arten von unsichtbaren Hilfsachsen verwendet. Sie müssen die letzte löschen:

[~,~,~,~,pax]=plotmatrix(randdata); 
cla(pax(LinearClrIndex)); 

wobei die Indizes linear sollten: ein 5x5-Matrix Grundstück in Fall pax wird eine 5-Elemente-Array sein.

Wenn Sie die Achsen löschen möchten, nicht nur klar, es müssen Sie die zweite Ausgabe auch:

randdata = rand(5) 
[~,ax,~,~,pax]=plotmatrix(randdata); 
delete(pax(2)); 
delete(ax(2,2)); 

Das wird ein klaffendes Loch voller Leere in der (2,2) Position verlassen.

+0

Vielen Dank es funktioniert :) – Umar

+1

und ich habe gerade festgestellt, dass Sie die durch px Index nach Index durch eine Schleife löschen 'cla (px (2))' löscht das zweite Diagramm in der Diagnose, aber wenn ich 'cla (px) 'es löscht nicht alles – Umar

Verwandte Themen