2013-07-05 4 views
1

명령 줄에 다음 줄을 입력 할 때 MATLAB이 오류를 표시하는 이유를 알지 못합니다.MATLAB : 첨자 할당 차원 불일치

k=2; 

c=[0 0 0 1 0 0 0 0;0 0 0 0 1 0 0 0]; 

temp1=[1 0;2 0;1 0;5 0;9 0;5 0;6 0;7 0]; 

s=c*temp1; 

w(2,k)=s 

첨자 할당 차원이 일치하지 않습니다. w (2, k)는 2 × 2 행렬에 불과하고 할당 된 2 × 2 행렬없고 아직 그 오류를 표시

>> s 

s = 

    5  0 
    9  0 

. 나는이 주제에 대한 나의 이해를 더 잘 도울 수있는 사람에게 감사하고 싶다.

+0

달성하고자하는 것에 대해 좀 더 설명 할 수 있다면 도움이 될 것입니다. 's'의 내용으로'w '를 채우시겠습니까? 또한 'w'는 무엇입니까? 예제 코드에서 정의하지 않았습니다. – Marius

답변

1

오류는 w(2,k)1x1 행렬이고 s, 2x2 행렬을 넣으려고합니다. 할당 작업을 수행 할 때 (예 : =) 등호의 양쪽면의 치수는 동일해야합니다. 그렇지 않은 경우 치수 불일치 오류가 발생합니다.

w2x2 인 경우 w = s이 작동해야합니다. 그렇지 않으면 w(2,k) = s(2, k)도 작동해야합니다. 정확히 당신이 성취하고자하는 것은 무엇입니까?

+0

'w (2, k) = s (2, k)'는 전체 행렬이 아닌 하나의 원소만을 복사 할 것입니다. –

+0

@MohsenNosratinia ... 그렇기 때문에 OP의 의도는 무엇입니까? – Dan