1

いくつかの垂直正弦曲線を示す 3D 図をプロットする必要がある関数プログラム (メインではない) に行き詰まっています。

残念ながら、サイナスカーブの代わりに計画を立てました。なぜ機能しないのかわかりません.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
4

1 に答える 1

1

あなたが望むもののために、最も簡単な解決策はこれです:

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

3 番目の内側のループをスキップして、設定を変更すると、元のコードを修正できます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))です。つまり、すべての画像ピクセルを同じ値に設定します。

于 2012-12-03T21:51:06.347 に答える