2012-10-10 1 views
2

surf 명령을 사용하여 플로팅하려는 행렬 Z가 있습니다. 나는 surf 명령을 사용하여 잘 그릴 수 있지만 Z의 일부가 플롯에 나타나지 않기를 바란다. I는 제가해야하는 표기 X와 Y가 (x, y)를 정의하는 행렬이다직사각형이 아닌 도메인에서 surf() 명령을 사용하여 행렬을 그리는 방법

surf(X,Y,Z) 

대응하는 Z 값의 좌표를 사용하여 가정. 내가 알고 싶은 것은 플롯되지 않아야하는 Z의 점에 대해 (x, y) 좌표로 넣은 것입니다. 즉 x와 y는 아무 것도 없어야합니다. 예를 들어

:

Z = 1 5 7 
    2 6 0 
    3 0 0 
    4 0 0 

X = 1 1 1 
    2 2 _ 
    3 _ _ 
    4 _ _ 

Y = 1 2 3 
    1 2 _ 
    1 _ _ 
    1 _ _ 

공간에 어떻게 갈 것인가? 모든 값이 원점으로 이동하기 때문에 0과 같은 숫자를 넣을 수 없습니다. 더 좋은 방법이 있다면 surf()를 사용할 필요가 없습니다.

+0

Z에 해당 0을 입력하면 어떻게됩니까? –

+0

N/A는 무엇을 의미합니까? 나는 N/A를 할당하려고 시도했는데 Matlab은 변수 N을 찾을 수 없다고 말했다. 'N/A'도 작동하지 않았습니다. – user972276

+0

아, 죄송합니다. NaN 의미, 토큰이 정확히 무엇인지 기억하지 못했습니다. ( –

답변

6

그래프에 표시하지 않으려는 Z의 모든 값을 NaN으로 설정합니다. 예를 들어, 트릭을 할 것입니다 다음

Z(Z==0)=NaN;

Z의 0을 그래프로하지 않으려면. X와 Y를 사용하지 않아도됩니다. 그래프에 표시하지 않으려는 Z 세트가 더 복잡하면 어떻게 든 Z (i, j)를 구해서 NaN으로 설정해야합니다.

+0

감사합니다! 나는 null과 nill 및 모든 것을 생각할 수있었습니다 .NaN을 생각하지 않았습니다. – user972276

관련 문제