2014-09-23 3 views
0

데이터를 CSV 파일로 수정하는 프로그램을 작성 중입니다. 다음 CSV 파일 은 COLUMNS은 .. 구성되어C++ 중첩 for 루프

X 좌표 정보, X, Y, Z, 정보, X, Y, Z 정보, Z 좌표, Y 좌표, ..

첫 번째 X 좌표는 열 4에서 시작하고 다음 X 좌표는 4 열 후,입니다. Y의 경우 5 열 9 열입니다. deque에 데이터를 저장 했으므로 첫 번째 데이터는 x의 데이터 [row #] [3]에 해당하고 y는 데이터 [row #] [5]가됩니다. 루프에서의 계산

for(int k=0; k<618; k++) { //all rows 618 
    for(int l=3; l<96; l=l+4) { //x columns 
     for(int m=4; m<97; m=m+4) { //y columns 
      data[k][l] = (data[k][l])*(data[k][2]) + (data[k][m])*(data[k][1]); 

, 나 (I 루프 만들어 같이)이

I이 식으로부터 얻는 값 열 (K)의 모든 X 값 (L)를 바꾸려면
x' = x* cos(theta) + y* sin(theta) 

COS (세타)과 죄 (세타)의 값은 모든 행 (따라서, 데이터 [K] [2] 데이터 [K] [1].

대한 열 (2, 3)에서 발견 불행히도, 여러 cout 문을 사용하여이를 테스트 할 때 원하는대로 수행하지 않는 것으로 나타났습니다.

LOOP OF

원하는 동작 : 루프를

  • 1 시간 :의 계산으로 col.5 컬럼 4 및 y = 1 행 값 안에, X = 값 수행

  • * 일단 루프 반복, 다시 시작, k, l 및 m은 2,9,10으로 업데이트됩니다.

  • 루프의 계산이 이러한 새 값에 대해 실행됩니다.

주요 문제는 데이터 후 원하는 세 갱신되지 않는 K, L, m이다 [K] [1]이 원인이 될 수있는 것을 라인? 감사합니다.

+0

, 당신은을 통해 강화 때

이런 일이 무슨 의도인가? –

+0

당신의 언어는 불분명합니다. 'data [k] [l] ... '의 첫 번째 실행 후에는 ** m ** 만 업데이트해야합니다. 너는 무엇을 관찰하고 있니? – Beta

+0

@ 베타 사과드립니다. 네, 그것은 단지 m을 업데이트하고 있습니다 만, m과 l을 모두 업데이트하기를 원합니다. - (int l = 19 & & m=20; l <30 & & m<30; l = l + 4 && m = m + 4) – user3295674

답변

1

중첩 루프를 이해하지 못합니다. 디버거 쇼를 무슨 짓을

for(int k=0; k<618; k++) { //all rows 618 
    for(int n=0; n<24; ++n) { //groups 
    l = 4*n + 3; 
    m = 4*n + 4 
    data[k][l] = (data[k][l])*(data[k][2]) + (data[k][m])*(data[k][1]); 
    } 
} 
+0

고맙습니다. 나는 이것을보기 전에 직접 해결하려고 노력했습니다. 해결책일까요? codeshare.io/QAl5Z – user3295674

+0

@ user3295674 : 예, 'l'을 초기화하는 것을 잊지 마십시오. – Beta