2012-12-03 23 views
1

我被困在函數程序(不是主),它必須繪製一個3D圖形,顯示幾個垂直正弦曲線。使用matlab編程數學圖像

不幸的是,我得到了一個計劃,而不是竇性曲線。我不知道爲什麼它不工作,我一直在試圖找出在2小時的問題...請幫助 謝謝

%fonction sinus_vertical: 
function img=sinus_vertical(N,M) 
w=2*pi; 
t=1:0.1:N; 
for j=1:M 
    for i=1:N 
     for k=1:N 
      img(i,j)=sin(w*t(k)); 
     end 
    end 
end 

主要課程:

%Main Script 
img3=sinus_vertical(100,100); 
figure(1); 
mesh(img3); 
colormap gray 
+0

垂直正弦曲線是什麼意思?你可以發佈圖片嗎? – bla

回答

0

你想要的東西,最簡單的辦法是這樣的:

function img=sinus_vertical(N,M) 
    w=2*pi; 
    t=0.1*(1:N); 
    img = repmat(sin(w*t)',1,M); 
end 

您可以糾正你的原代碼,如果你跳過第三內環和修改設置t。 所以正確的代碼是:

function img=sinus_vertical(N,M) 
    w=2*pi; 
    t=0.1*(1:N); 
    for j=1:M 
     for i=1:N 
      img(i,j)=sin(w*t(i)); % or j, depending on what direction you want the sin. 
     end 
    end 
end 

解釋:
我寫給你「不需要」與k循環,因爲如果你這樣做

for k=1:N 
    img(i,j) = sin(w*t(k)) 
end 

它是一樣的書寫img(i,j)=sin(w*t(N))。那就是你將所有的圖像像素設置爲相同的值。