2017-04-09 92 views
-1

我需要补360元矩阵与不同phiStart和phiExit值90个元素周期:我怎样才能简化这个循环?

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 2 3 4 0 0 2 3 4 0 0]我需要用最简单的方法求解矩阵360个成员该语言是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

非常感谢您的帮助。这是解决方案 –