2016-07-25 10 views
0

Ich versuche, ein Köcher Grundstück zu kombinieren und imagesc, hier ist mein Skript:Kombination Köcher und imagesc

x=[0 0.0125 0.0250 0.0375 0.0500, 
    0 0.0125 0.0250 0.0375 0.0500, 
    0 0.0125 0.0250 0.0375 0.0500, 
    0 0.0125 0.0250 0.0375 0.0500, 
    0 0.0125 0.0250 0.0375 0.0500]; 

y=[0   0   0   0   0, 
0.0125 0.0125 0.0125 0.0125 0.0125, 
0.0250 0.0250 0.0250 0.0250 0.0250, 
0.0375 0.0375 0.0375 0.0375 0.0375, 
0.0500 0.0500 0.0500 0.0500 0.0500]; 

vx=[0.0009 -0.0019 -0.0058 -0.0040 -0.0028, 
0.0012 0.0159 0.1207 0.1465 0.0985, 
0.0007 0.0018 -0.0367 0.2432 -0.0053, 
0.0004 0.0920 0.1796 0.3807 0.0338, 
-0.0006 0.1708 0.1764 0.2567 0.1256]; 

vy=[0.0002 0.0000 -0.0001 -0.0001 -0.0001, 
-0.0003 -0.0156 -0.0076 -0.0251 -0.0433, 
-0.0008 -0.0113 -0.0218 -0.0519 -0.0720, 
-0.0006 -0.0091 -0.0326 -0.0778 -0.1087, 
-0.0003 -0.0026 -0.0025 -0.0416 -0.1048]; 


vz=[0.0002 0.0000 -0.0001 -0.0001 -0.0001, 
-0.0003 -0.0156 -0.0076 -0.0251 -0.0433, 
-0.0008 -0.0113 -0.0218 -0.0519 -0.0720, 
-0.0006 -0.0091 -0.0326 -0.0778 -0.1087, 
-0.0003 -0.0026 -0.0025 -0.0416 -0.1048]; 

figure(1) 
imagesc(vz) 
hold on 

step = 2; 
quiver(x(1:step:end,1:step:end), y(1:step:end,1:step:end), vx(1:step:end,1:step:end), vy(1:step:end,1:step:end), 'ShowArrowHead','on', 'AutoScaleFactor',1) 
hold off 

Wenn ich es funktioniert einfach quiver(vx,vy) verwenden und sie kombiniert werden, aber es gibt zu viele Pfeile und ich möchte den Köcherplan optimieren.

Allerdings, wenn ich die Parameter manuell, wie im Beispiel ändern, kombiniert sie funktioniert nicht. Ist es irgendwie möglich, sie irgendwie zu kombinieren?

+0

"funktioniert nicht"? PC explodiert in 1000 Stücken? Error? Alles ist Bernsteinfarbe? –

+0

Ich kann es auch nicht mit Schritt = 1 arbeiten, also wie lässt man sie zusammenarbeiten? –

+0

Wenn ich nur 'quiver (vx, vy)' verwende, dann funktioniert es gut. Wenn ich ausdrücklich den Schritt dann nur 'set imagesc' angezeigt – BillyJean

Antwort

1

Das Problem ist, dass die Köcher irgendwo anders sind.

Ihre x und y sind alle über 0.05 maximale Größe, aber wenn man imagesc verwendet jedes Pixel ist 1 Größe, so Köcher sind irgendwo da, sehr sehr sehr klein in der linken unteren Ecke.

Wenn Sie sie oben auf dem Bild machen möchten, müssen Sie x und y Werte ändern, aber es ist ziemlich einfach. Ersetzen Sie den Köcher Aufruf von:

quiver((x(1:step:end,1:step:end))*(size(vz,1)-1)/max(x(:))+1, y(1:step:end,1:step:end)*(size(vz,2)-1)/max(y(:))+1, vx(1:step:end,1:step:end), vy(1:step:end,1:step:end), 'ShowArrowHead','on', 'AutoScaleFactor',1) 

enter image description here

Beachten Sie auch, dass Ihre Achse falsch sind, sie zeigen, 1: 5, aber sollte etwas anderes zeigen.

+1

Sie können auch die x- und y-Grenze des Bildes definieren mit:' imagesc ([x_min x_max], [y_min y_max], vz) '. – obchardon

+0

@obchardon oh ... wusste nicht darüber. Überlege, ob du es als Antwort hinzufügen möchtest! –