Need half of my contour plot

조회 수: 5 (최근 30일)
Maryam
Maryam 2013년 7월 18일
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?

채택된 답변

Kye Taylor
Kye Taylor 2013년 7월 18일
편집: Kye Taylor 2013년 7월 18일
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
Pourya Alinezhad
Pourya Alinezhad 2013년 7월 19일
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
Maryam 2013년 7월 19일
Thank you very much. I now have what I wanted.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Pourya Alinezhad
Pourya Alinezhad 2013년 7월 18일
편집: Pourya Alinezhad 2013년 7월 18일
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))

카테고리

Help CenterFile Exchange에서 Contour Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by