2012-12-29 2 views
0

북쪽 55도와 동쪽 20도 특정 점에서 시작하여 임의의 각도 (randn을 사용하여 생성)에 따라 방향을 따르고 싶은 일부 벡터를 플롯하려고합니다. 나는 루프와 함께 그 일을 생각하지만 잘 안 :matlab에서 시작점부터 특정 방향을 따라 벡터를 플로팅하는 방법은 무엇입니까?

for i=1:100 
    a=50+ 20.*randn; 
    b = [a]; 
    i = i + 1; 
    route = [20,50] + b * 
    plot(route, 'color', 'magenta') 
    hold on 
end 

»»»경로 = 내가 나 때문에이 같은 그것을 시도 [20, 50] + ㄱ * 그것은 바보 같은 선형처럼 보인다 방정식 y = a + bx의 형식 방정식 x에 대해 무엇을 사용해야할지 모르겠다. 또한이 방법으로 단 하나의 경로 만 표시하고 100을 필요로한다.

하나의 그래프가 필요합니다. 변화하는 유일한 매개 변수가 방향과 같은 지점에서부터 백개의 벡터가 필요합니다.

누군가 나를 도울 수 있기를 바랍니다. 어떤 아이디어?

ps : 저는 방금 MATLAB을 시작했습니다. -

답변

2

한 방향으로 한 라인에 다음 코드를 사용해보십시오 : - :

%Initial line information 
startPoint = [20 50] ; 
direction = [4 3] ; 
lineLength = 100; 

%Initialize line points with zeros 
x = zeros(lineLength); 
y = zeros(lineLength); 

% Update line points 
for i = 1 : lineLength 
    x(i) = startPoint(1) + direction(1) * i; 
    y(i) = startPoint(2) + direction(2) * i; 
end 

%Plot the line 
plot(y , x ,'r.'); 

2 그리고 당신은 방향이 다음 코드를 사용하여, 모든 지점에 대한 변경

되도록하려면

%Initial line values 
startPoint = [20 50] ; 
lineLength = 100; 

%create random direction vector 
randomMax = 100; 
direction = randi(randomMax,lineLength,2); 

%Initialize line points with zeros 
x = zeros(lineLength); 
y = zeros(lineLength); 

%set first points 
x(1) = startPoint(1); 
y(1) = startPoint(2); 

% Update line points accumulating on previous point 
for i = 2 : lineLength 
    x(i) = x(i - 1) + direction(i,1) * i; 
    y(i) = y(i - 1) + direction(i,2) * i; 
end 

%Plot the line 
plot(y , x ,'r.'); 

3 - 방향이 다른 여러 줄의 경우 다음 코드를 사용하십시오.

%Initial line values 
startPoint = [20 50] ; 
lineLength = 100; 

%create random the 100 directions vector 
randomMax = 100; 
directions = randi(randomMax,lineLength,2); 

%Initialize line points with zeros 
x = zeros(lineLength,100); 
y = zeros(lineLength,100); 

%set first points 
x(1) = startPoint(1); 
y(1) = startPoint(2); 

h3 = figure; 

% Update line points accumulating on previous point 
for k = 1 : 100 
    for i = 2 : lineLength 

     x(i,k) = x(i - 1,k) + directions(k,1) * i; 
     y(i,k) = y(i - 1,k) + directions(k,2) * i; 

    end 
    %hold the figure and plot the k-th line 
    hold on;  
    plot(y(: , k) , x(: , k) , 'r.'); 
end 
+0

첫 번째 부분을 보내 주셔서 감사합니다. 그러나 두 번째 부분에서는 100 번 바뀌고 싶은 줄의 방향이 아니라 전체 벡터의 방향입니다. 나는 같은 그래프에서 100 개의 서로 다른 무작위 방향을 가진 100 개의 벡터를 원한다. 그러나 선 길이는 변하지 않는다. 길이는 중요하지 않습니다 ... 그리고 그것은 다음 단계에 대한 내 문제입니다! – user1936545

+0

각각 다른 방향으로 여러 줄에 대한 답의 새로운 세 번째 부분을 시도하십시오. –

관련 문제