2014-12-10 2 views
0

격자에 사각형을 그립니다. 사각형은 셀 배열 내에 설정된 ID를 가져야합니다. ID가 셀의 각 ID를 순서대로 반복 할 것을 기대하고있었습니다. 대신에 행을 순환합니다. 셀을 반복합니다.

Matlab expected and actual results

cell_id = cell(1, 2); % 1 x 5 cell array 
cell_id{1, 1} = 1365; cell_id{1, 2} = 1256; cell_id{1, 3} = 6214; cell_id{1, 4} = 2587; cell_id{1, 5} = 1564; 

hold on 

for i = 1:2:12 

count = 1; 

for ii = 1:2:12 

    plot(1*i , 1*ii, 's', 'MarkerSize', 50); 

    if (count <= 5) 
     id = cell_id(1,count); 
     text(1*i, 1*ii, ['ID:',id]); 
     count = count + 1; 
    elseif (count > 5) 
     id = cell_id(1,1); 
     count = 1; 
     text(1*i, 1*ii, ['ID:',id]); 
    end 
    end 
end 

모든 아이디어, 감사

.

+0

왜 예상되는 출력입니까? 알고리즘이 무엇을해야 하는지를 알기 위해서는 더 자세한 정보가 필요합니다. –

+0

@ JaviV, 사각형은 RF 박스이며 ID는 다른 곳에서 정의 된 채널을 나타냅니다. 그러나 이것을 단순화하기 위해 포함하지 않았습니다. 그렇기 때문에 결과에 표시되는 것과 동일한 ID로 동일한 ID를 추적 할 수 없습니다. – AnotherUser

+0

나는 그런 종류의 세부 사항을 의미하지 않았다. 그러나 나는 올바른 순서가 무엇인지 알 수있는 방법을 의미합니다. 샘플 출력에서 ​​우리가 추출 할 수있는 패턴이 맞는지 여부를 알 수 없습니다. –

답변

0

외부 루프가 i 이상입니다. 내부 루프가 ii (이상한 이름 임) 이상입니다. 즉, ii의 변경 속도가 더 빨라지고 상자 및 텍스트의 오프셋이 y인데이를 사용하면 카운트 ID가 y 방향으로 변경됩니다. plottext 호출에서 iii의 순서 만 변경하십시오.

예를 들어 루프 변수 xy을 사용하면 더 분명합니다. 여기

는 향후 비슷한 일을 알아내는 데 도움이 될 몇 가지 다른 디버깅 팁 :

  • 그냥 난의 값을 인쇄, II, 및 텍스트 및 순서는 당신에게 명백 할 것이다 .
  • 코드의 일부분을 단순화하여 동작이 어떻게 변경되는지 확인하십시오. 예를 들어 for 루프 중 하나를 1 : 1로 변경하면 단일 행이나 열만 생성됩니다.
  • 인쇄 할 텍스트를 디버그에 도움이되는 중간 값으로 변경하십시오. 예 : count 또는 i 또는 ii입니다.
관련 문제