Trying to plot a radial contour
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to plot a 2x2 contour subplot, it is supposed to be circular, but I either get lines or no plot at all or an error saying my z needs to be a 2x2 array.
function F = ratio_rp_bf(R,theta,bD)
for r = 1:length(R)
for b = 1:length(bD)
F(b,r) = (16/3).*(1./bD(b)).*(1./R(r)).^3.*abs(sqrt((1./R(r)).^4-2.*(1./R(r)).^2.*cos(2.*theta(r))+1));
end
end
bD = [0.1, 1.0, 10, 100];
R = (1:1.25:5);
c = R;
a = 1/2*bD;
b = abs(sqrt(c.^2 - a.^2));
theta = abs(atan(b./a));
[F] = ratio_rp_bf(R,theta,bD);
for b = 1:length(bD)
figure(1)
subplot(2,2,b)
x = R.*cos(theta);
y = R.*sin(theta);
z = F;
[x,y,z] = meshgrid(x,y,z);
[C,h] = contour(R,theta,bD,x,y,z);
clabel(C,h);
grid on
end
0 commentaires
Réponse acceptée
Thorsten
le 18 Fév 2013
You try to visualize the contours of a 2 x 2 image. That should most likely look degraded. And note that for the values chosen each row is simply 1/10 of the previous row:
F(b+1, r) = F(b, r)/10
Is this correct?
0 commentaires
Plus de réponses (2)
Walter Roberson
le 16 Fév 2013
Why are you trying to pass 6 parameters in to contour()? contour expects at most 4 numeric parameters (excluding name/value pairs)
7 commentaires
Walter Roberson
le 17 Fév 2013
Have you tried restarting MATLAB? Then put in a breakpoint at the meshgrid line, and examine the size() and print the values of the variables to see how many entries show up and what they are.
Image Analyst
le 17 Fév 2013
I'm not really sure I follow what you're trying to do, nor do I know what sort of output ratio_rp_bf() creates, but if you just want to draw dircles, see the FAQ:
If F is an image that you created that's supposed to be a circular cone so that contours on it would be concentric circles, then please upload that image since I don't have ratio_rp_bf() which creates it.
5 commentaires
Walter Roberson
le 18 Fév 2013
One of you has misinterpreted. The three-argument form of contour() is always X, Y, Z coordinates. To use specific contour levels, you need the two-input or four-input forms of contour(). See http://www.mathworks.com/help/matlab/ref/contour.html
Note that you have not included F in your contour() call.
Voir également
Catégories
En savoir plus sur Contour Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!