2014-02-10 5 views
1

3 행과 1000 열을 가진 입력 행렬이 있습니다. 각 열은 x, y, z 변수를 나타냅니다. 각 열의 크기를 찾고 행과 열이 1 개인 출력 매트릭스에 저장하고 싶습니다.행렬의 각 열의 크기

이 내 현재 시도했지만, 제대로 동작하지 않습니다

: 내 출력 행렬과 같이 할

x1, x2,...,x1000 
y1, y2,...,y1000 
z1, z2,...,z1000 

: 같은

output(1,:) = norm(input(3,:)); 

내 입력 행렬이 보인다

[magnitude(x1,y1,z1), magnitude(x2,y2,z2),...,magnitude(x1000,y1000,z1000)] 

도움을 주시면 감사하겠습니다.

답변

1

norm(input(3,:))은 세 번째 행의 1000 요소의 표준을 제공합니다.

쉬운 해결책은 for 루프를 실행하는 것입니다.

output = zeros(1,1000); %Preallocate space 
for i = 1:length(output) 
    output(i) = norm(input(:, i)); 
end 
0

MATLAB의 표준 함수는 단일 벡터에서만 작동합니다. A를 표준을 찾으려는 행렬의 이름으로 둡니다.

>> A = [1:5; 1:5; 1:5] 

A = 

    1  2  3  4  5 
    1  2  3  4  5 
    1  2  3  4  5 

>> norm_A = sqrt(sum(A.*A)) 

norm_A = 

    1.7321 3.4641 5.1962 6.9282 8.6603 
: 여기
norm_A = sqrt(sum(A.*A)); 

이 예입니다 : 그런 다음이 명령은 작업을 수행
관련 문제