How to plot a triangular shape function on a triangular domain?

Hello, I want to plot the following shape function: N(s,t)=t*(2*t-1) It has to look like the following diagramm:
but I get this one:
Here is my code:
[s,t]=meshgrid(0:0.1:1,0:0.1:1)
N3=@(s,t)t.*(2*t-1);
surf(s,t,N3(s,t))
I know that the problem is with the rectangular domain, that meshgrid generates. But I don't know how to define a triangular domain. Has anybody an idea?
Thanks

 채택된 답변

Mike Garrity
Mike Garrity 2016년 4월 25일

1 개 추천

I described one approach in this thread.

댓글 수: 3

Hi Mike, Thank you for your quick answer. Unfortunately I can't apply it to my case. In your approach you have used: out = w<0; which is not going to work in my case. Can you please make it more clear by helping me to define the exclusion area?
When I even manage to do that, I'll have NaN elements in my N3-matrix, which causes the following error:
Subscript indices must either be real positive integers or logicals.
any idea about this?
Thanks
I think that passing a function handle into surf is making things more complicated than you really need.
I don't know what N3 is, but using the N from the top, I get this:
[s,t] = meshgrid(0:0.025:1);
z = t.*(2*t-1);
z(s+t > 1) = nan;
surf(s,t,z)
Thank you very much Mike!

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Graphics Performance에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by