2017-04-09 2 views
-1

私は別のphiStartとphiExit値のための90個の要素の期間と360要素の行列を記入する必要があります。どうすればforループを簡略化できますか?

flute = 4; 
phiStart = 0; 
phiExit = 90; 
phiDelta = 1; 
phiPitch = 360/flute; 

for g = 0:abs(phiExit - phiStart); 
    for k = 0:abs(phiExit - phiStart); 
     for j = 0:abs(phiExit - phiStart); 
      for m = 0:abs(phiExit - phiStart); 
       for i = 0:abs(phiExit - phiStart); 
        answerA = phiStart + i * phiDelta; 
        phi(i+1) = answerA; 
       end 
       answerA = phiStart + m * phiDelta; 
       phi(m + phiPitch) = answerA; 
      end 
      answerA = phiStart + j * phiDelta; 
      phi(j + 2 * phiPitch) = answerA; 
     end 
     answerA = phiStart + k * phiDelta; 
     phi(k + 3 * phiPitch) = answerA; 
    end 
    answerA = phiStart + g * phiDelta; 
    phi(g + 4 * phiPitch) = answerA; 
end 

b = (phi > 0); % dummy matrix for edge cofficients 
h = feedRate * sin(phi/180 * pi); 
+4

どのような言語ですか? (Matlab?) – ysap

+1

'phiStart'と 'phiDelta'は定数です。なぜネスティングループが必要なのですか? 「phi」の値は何度も何度も上書きされていますか? – ysap

+0

はいphiStartとphiExitは私が定義した定数です。私はこのような行列を埋める必要があります。 15のメンバーを持つ行行列を言うことができます。 phiStart = 2 phiExit = 4で、周期は5 ----->したがって行列は[2 3 4 0 0 3 4 0 0 2 3 4 0 0]でなければなりません。 360 members言語はmatlabです。ありがとうございました –

答えて

0

申し訳ありませんが、これは(ちょうど支援しようと)意味がない場合は、私も何で分かりませんそれが書かれている言語ですが、私が元のコードで何を読んでいるかは、

for i = 0:abs(phiExit - phiStart); 
    answerA = phiStart + i * phiDelta; 
    for j = 0:abs(flute - 1) 
     phi(i + j * phiPitch) = answerA; 
    end 
end 
+0

ありがとうございました。これが解決策です –

関連する問題