Ich habe es mit einem strukturierten Raster zu tun. Ich möchte nur einen Text vom Typ (m, n) hinzufügen, der die Indizes jedes Knotens anzeigt. Und vielleicht in der Zukunft stattdessen der Wert der Variablen. Ich benutze die Textfunktion. Ich profilierte den Code und die meiste Zeit ist in dieser Funktion verbracht. Es ist nur ein 101 * 101 Gitter, wenn Sie es erhöhen, ist der Code im Grunde stecken. Ich habe es bereits optimiert Schleifen für Text und Spritnf zu vermeiden, aber es immer noch zu langsam. Sobald das Plot erstellt wurde, ist es sehr fest und es dauert jedes Mal ein paar Sekunden, um zu schwenken oder zu zoomen. Siehe unten ein minimales Beispiel. Ich habe auch den Patch hinzugefügt, den ich verwende, um das Gitter anzuzeigen. (Ich benutze einen Patch, weil ich einige Grid-Mengen für jede Zelle grafisch darstellen möchte, und ich möchte es allgemein halten, falls ich zu einem unstrukturierten Mesh mit unregelmäßigen Polygonen übergehe. Patch ist superschnell, aber kein Problem damit). Irgendwelche Vorschläge, um dies zu beschleunigen? Dank"Text" -Funktion sehr langsam, Flaschenhals meines Codes
%define grid and grid numbering
DX = 10 ; %=DY
mmax = 101; %= number of nodes in x
nmax = mmax %= number of nodes in y
[ x y ] = meshgrid(0:DX:DX*(mmax-1),0:DX:DX*(mmax-1)); %grid
[ mMAT nMAT ] = meshgrid(1:mmax,1:nmax); %grid numbering
%
%display patch
%
cont = 0
for m=2:mmax
for n=2:nmax
cont=cont+1;
Xpatch(1:4,cont) = [ x(n-1,m-1) ; x(n-1,m) ; x(n,m) ; x(n,m-1) ] ;% ii+1 since it has the BC
Ypatch(1:4,cont) = [ y(n-1,m-1) ; y(n-1,m) ; y(n,m) ; y(n,m-1) ] ;
Zpatch(cont) = 1;
end
end
hpatch3 = patch(Xpatch(:,:),Ypatch(:,:),Zpatch(:)');
%
% display node indices
%
charINPUT = regexp(sprintf('(%d,%d)\n',mMAT(:),nMAT(:)),'(?<=\s*)(\S*)(?=\n)','match'); % use regexp to vectorize sprintf and so avoid slow loops with sprintf
text(x(:),y(:),charINPUT(:),'Clipping', 'on');
set(gcf,'position',[9 40 1350 650])
set(gcf,'PaperPositionMode','auto')
Nur eine Idee, eine andere Funktion, die Text schreiben bietet, ist Annotation. Obwohl diese Füllung die Beschriftung schwerer macht, können Sie überprüfen, ob sie besser funktioniert. Aber ich würde nicht sehr viel zählen, dass es einen besseren Ansatz als 'text' gibt, es ist die Matlab-eingebaute Lösung dafür. – Werner
Schau mal hier: http://stackoverflow.com/questions/4940561/does-matlab-execute-a-callback-when-a-plot-is-zoomed-resized-redrawn Übrigens, deine Bearbeitung zu meinem Antwort auf Ihre andere Frage war übereifrig, so Rezensenten dankenswerterweise abgelehnt. Versuchen Sie nicht, den Inhalt von Posts grundlegend zu ändern ... nur kleine Änderungen, wenn überhaupt. Lassen Sie mich wissen, ob es eine Nummer oder etwas Spezifisches zum Hinzufügen gibt und ich werde die Änderung vornehmen. Vielen Dank. – chappjc
Mmm Ich überprüfte die Hilfe Anmerkung erlaubt es Ihnen nicht, einen Vektor zu verwenden, müssen Sie richtig radeln? Ich bezweifle, dass es schneller ist – Lupocci