2017-04-08 1 views
1

3x3 행렬을 만듭니다. 인덱싱 작업은 처음에는 잘 작동합니다.Matlab/Octave에서 전치 행렬에 대한 색인 생성을 수행하는 방법은 무엇입니까?

>> K=rand(3) 

K = 

    0.8147 0.9134 0.2785 
    0.9058 0.6324 0.5469 
    0.1270 0.0975 0.9575 

>> K(:,1) 

ans = 

    0.8147 
    0.9058 
    0.1270 

하지만 전치 행렬에 인덱싱 작업을 할 경우, matlab에 오류가 발생합니다 :

는 사람이에 대한 아이디어가 있습니까
>> K'(:,1) 
K'(:,1) 
    ↑ 
Error: Unbalanced or unexpected parenthesis or bracket. 
>> (K')(:,1) 
(K')(:,1) 
    ↑ 
Error: Unbalanced or unexpected parenthesis or bracket. 

를?

답변

4

이이 방법을 수행 복잡한 데이터 또는 그냥 좋은 습관으로 .'를 사용

K(1,:).' 
% note the dot above (.' - means transpose) 

% however if you want Hermitian then do this 
K(1,:)' 
% (just ' - means Hermitian) 

% well if K is real then it does not matter 
+0

에서 작동하지 않습니다 –

2

간단한 답변이지만,이 구문은 허용되지 않습니다 (Matlab에서는 실제로 다른 대답이 지적한대로 Octave에 있습니다). 당신은 같은 결과를하지만 다음을 수행 할 수

K(1,:)' 

또는

K = K'; 
K(:,1) 

MATLAB 그냥 전치을 내부적으로 인덱스를 뒤집로이 너무 비싸 BR되지 않습니다. 다른 답변자 상태처럼 (? 매스 웍스는 왜 왜)

4

을 옥타브, 당신은이 작업을 수행 실제로 할 수 있습니다.

참고 :이 :-) 당신은 점 내 upvote에이 MATLAB

K = 

    0.814700 0.913400 0.278500 
    0.905800 0.632400 0.546900 
    0.127000 0.097500 0.957500 

>> (K.')(:,1) 
ans = 

    0.81470 
    0.91340 
    0.27850 
관련 문제