2013-03-11 4 views
1

안녕하세요, 저는 각 요소가 x와 y 조합에 해당하는 데이터 세트를 갖고 있습니다. 메쉬를 사용하여이 그래프를 그릴 때 나는 많은 스파이크가있는 그래프를 얻습니다. 이것은 예기치 않은 것이 아니지만 매끄러운면을 얻기 위해 이것을 부드럽게하는 방법을 원합니다. smooth3 명령을 사용하려고했지만 적절한 입력을 만드는 방법을 알 수 없습니다. 도움이 될 것입니다. 감사합니다Matlab은 매끄러운 3 차원 메쉬 플롯

내 데이터가 생성되는 방식입니다.

function v = f(x,y) % Not actual function 
return x*rand()+y*rand() 
end 

x = 0.05:0.01:0.95; 
y = 0.05:0.01:0.95; 

o = zeros(length(x),length(y)); 
A = zeros(length(x), length(y)); 
for k = 1:5 
    for i = 1:length(x) 
     for j = 1:length(y) 
      o(i,j) = f([x(i), y(j)]); 
     end 
    end 
    A= A+o; 
end 
A = A/5; 

이것은 플롯을 생성합니다.

[X,Y] = meshgrid(x); 
mesh(A) 
+0

샘플 코드가 현재 양식으로 실행되지 않습니다. 코드에서'f'와'Average'는 정의되어 있지 않습니다.'A'와'o'는 초기화되지 않았습니다. –

+0

나는 데이터를 어떻게 보이는지 보여주기 위해 대부분의 것을 제거했다. f는 하나의 숫자를 반환하는 함수이고, Average = A, A와 o는 모두 0으로 초기화되지 않았다. (length (x), length (와이)). – wookie1

+0

그런 다음 코드에 넣으십시오. 그러면 도움이되는 사람들이 그런 것들을 신경 쓰지 않아도됩니다. –

답변

1

는합니다 (가우시안 필터의 예입니다 다음) 필터를 사용하여 변수 (A)의 회선을 시도 할 수의 나.

C = conv2 (A, fspecial ('gaussian', hsize, sigma)); conv2 및 fspecial (matlab 도움말)