MATLAB contourf-plot für eine unregelmäßige domain

Ich komme bei diesem problem für eine lange Zeit jetzt. Ich habe eine polygonale region (sagen wir, ein Sechseck). Ich kann berechnen Sie die Werte der bestimmten Funktion an einem beliebigen Punkt innerhalb des Polygons. Jetzt brauche ich zum erstellen einer Kontur gefüllt (mit contourf in MATLAB) dieser Daten. Wie mache ich es. Ich fand einige Diskussionen zu diesem Thema unter dem folgenden link (Seite 121)

http://www-personal.umich.edu/~jpboyd/eng403_chap4_contourplts.pdf

Dieser funktioniert einigermaßen ok, aber es produziert immer noch scharfe Kanten, die ich nicht will. Wer hat eine Anregung zu diesem problem? Danke. Hier ist mein code

close all
Node  = [ 1.0  0
          0.5  0.8660
         -0.5  0.8660
         -1.0  0
         -0.5 -0.8660
          0.5 -0.8660];
[x,y] = meshgrid(-1:0.1:1,-1:0.1:1);

N = zeros(size(x));
for i=1:size(x,2)
    for j=1:size(y,2)
        p = [x(i,j) y(i,j)];
        IN = inpolygon(p(1),p(2),Node(:,1),Node(:,2));
        if IN
            N(i,j)= rand;            
        else
            N(i,j)= NaN;
        end
    end
end

figure
contourf(x,y,N,'LineStyle','none'), hold on;     
xlabel('X'), ylabel('Y'), axis equal; axis off; colorbar;    
line([Node(:,1);Node(1,1)],[Node(:,2);Node(1,2)],'Color',[1 1 1],'LineWidth',2.0)
clear IN i j p x y
  • Können wir den code sehen, und einige der Daten, mit der Sie arbeiten?
InformationsquelleAutor John Smith | 2012-08-17
Schreibe einen Kommentar