Contour Plot of Rosie Function
    4 views (last 30 days)
  
       Show older comments
    
Hello,
I am trying to get the same plot as my professor showed in class. He said to use a for loop instead of meshgrid. I keep getting an error that X must not be a scalar. I'm not sure where I'm going wrong. Below is the plot I'm supposed to get followed by my code that is not working.

i=1; j=1;
x1=-1:.01:3;
x2=-1:.01:3;
for a=x1
    for b=x2
        f(i,j)=100*(a^2-b)^2+(1-a)^2;
        j=j+1;
    end
    j=1;
    i=i+1;
end 
clf;figure(1)
contour(a,b,f)
3 Comments
  Adam Danz
    
      
 on 24 Jan 2021
				I'm sure it's based on some dataset, function, or algorithm that our prof must have provided at some point. 
Answers (1)
  Star Strider
      
      
 on 24 Jan 2021
        Transpose ‘f’, since ‘x1’ and ‘x2’ appear to be the same (otherwise it would also be necessary to reverse their orders in the argument list for the contour call): 
i=1; j=1;
% conts=[-1 -.5 0 .5 2 3 3.5 3.6 3.7 3.8 3.9 3.98 4 4.02 4.1 4.2 4.5 5 10 ];
conts = 10.^(-1:1:3);
x1=-1:.01:3;
x2=-1:.01:3;
for a=x1
    for b=x2
        f(i,j)=100*(a^2-b)^2+(1-a)^2;
        j=j+1;
    end
    j=1;
    i=i+1;
end 
% clf;
figure(1)
contour(x1,x2,f.',conts, 'ShowText','on', 'LineWidth',1.5)
axis('equal')
.
0 Comments
See Also
Categories
				Find more on Contour Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


