Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Need half of my contour plot

Asked by Maryam on 18 Jul 2013

Hello I have a contour of the pressures over a surface. Basically, I had vectors x and y which were locations on the surface and on each location, I had a value for pressure. I have a rectangular plot. I was wondering if there is a way to split my plot from the diagonal and show just the results for either upper or lower triangles?

0 Comments

Maryam

Products

No products are associated with this question.

2 Answers

Answer by Kye Taylor on 18 Jul 2013
Edited by Kye Taylor on 18 Jul 2013
Accepted answer

Check out the tril and triu functions. For example if you have data similar to

[x,y]= meshgrid(-1:.05:1);
z = x.^2+y.^2;
contour(x,y,z)

Try something like

zLowerTri = tril(z);
contour(x,y,zLowerTri)

Since contour plots with the origin at lower left instead of upper right, you may prefer either

zLowerTri = tril(z);
contour(x,y,zLowerTri)
axis ij

or

contour(x,y,fliplr(tril(fliplr(z))))

4 Comments

Maryam on 18 Jul 2013

I used "contour(x,y,fliplr(tril(fliplr(z))))" and I got what I wanted. Thank you very much. I now need to Also, to show the deleted parts in white? Is there any way to do that? In the deleted area, my contour is all red which corresponds to the value=0 in my color map.

Pourya Alinezhad on 19 Jul 2013

use "nan" as i mentioned below to make that part invisible... functions you use {ex:tril(z)} replace the data values with zero,which itself could be a data!!!

Maryam on 19 Jul 2013

Thank you very much. I now have what I wanted.

Kye Taylor
Answer by Pourya Alinezhad on 18 Jul 2013
Edited by Pourya Alinezhad on 18 Jul 2013

hello maryam, run following lines of code.

x=0:0.1:10;
  y=x;
  j=1;
  z=meshgrid(x,y);
  h=ones(length(x),length(x))*nan;
  for i=1:length(x)
      for j=1:length(y)
      if i>j
          h(i,j)=z(i,j);
      end
      end 
  end
  surf(sin(h)./sqrt(h))
  figure
  contourf(sin(h)./sqrt(h))

0 Comments

Pourya Alinezhad

Contact us