2013-10-27 6 views
-1

C는 단위 원의 윤곽선을 형성하는 2 x 360 행렬입니다. C = [v1 | v2 | v3 ... v360] 여기서 v1은 1 °만큼 회전되고, v2는 2 °만큼 회전된다. R은 주어진 회전 행렬이다. E는 열 벡터 [1 0]for 루프를 사용하여 행렬을 채우는 방법

가 나는 행렬 C의 엔트리를 채우는 for 루프를 사용하는 방법을 모르는

>> C=zeros(2,360); 

하여 행렬을 초기화

>> for c = 1:360 
C = (R^c)*e; 
end 

및 다음은 원을 그릴 계획입니다.

>> plot(C(1,:), C(2,:)) 

답변

2

각 회전마다 각 열을 설정해야하므로 회전 할 때마다 C (:, c)를 설정해야합니다. ie

for c = 1:360 
    C(:,c) = (R^c) * c; 
end 

그러나 for 루프를 사용하지 않고 모든 작업을 수행 할 수 있습니다. (MATLAB은 for 루프를 피하는 것을 좋아한다).

t = 2*pi/360; 
R = [cos(t) -sin(t); sin(t) cos(t)]; 

때문에 우리는

R*e = [cos(t); sin(t)]; 

그래서 우리는

C = [cos(t) cos(2*t) ... cos(360*t); 
    sin(t) sin(2*t) ... sin(360*t)]; 

C = [cos(t * (1:360)); sin(t * (1:360))]; 
찾고있는 것을
관련 문제