2013-01-22 10 views
1

행렬을 얻으려고합니다. ab입니다. 그러나 아래 코드를 사용하면 오류가 발생합니다. ]) ","시행렬을 만들 때 오류가 발생했습니다.

잘못된 구문 또는 누락
및 ")"에

이 에러를 분석 : 오류는

NV(b,:)=(a;b);  

오류가있는 라인에서 발생할 코드 :

n=2; 
g1= 1:1:10; 
g=10.^(g1/10); %SNR 

for a= 0:g %diff SNR 
for b= 1:n %DIFF USERS 
    NV(b,:)=(a;b); % NOISE VAR, MATRIX FOR DIFF SNR AND DIFF USERS. 
end 
end 

이 오류의 원인은 무엇이며 어떻게 해결할 수 있습니까? 감사합니다.

+0

스칼라가 아닌 10 * 1 벡터 인 'g'로 반복되고 있다는 것을 알고 있습니까? ps 코드에는 몇 가지 다른 문제가 있지만이 코드는 먼저 해결해야합니다. –

+0

(a; b)는 무엇을 의미합니까? 아마도 당신은 ment (a, b) – Gilad

+0

안녕 얘들 아, 모든 답장을 주셔서 감사합니다, 내가 그것을 해결할 수있는 이론을 다시 읽은 후. 약간의 혼란이 있었고 많은 코드를 변경해야했습니다. 하지만 모든 답장을 다시 주셔서 감사합니다 – user2002030

답변

1

NV는 두 번째 행렬 차원의 모든 요소에 액세스하기 전에 정의되지 않습니다. 그것은 본질적으로 "모르는 양을 모두 설정하십시오"라고 말하면서 하나 일 수도 있고 무한 일 수도 있습니다. 그것은 잘 구성된 성명서가 아닙니다.

배열의 배열을 만드는 것처럼 보이기 때문에 나머지 줄은 약간 이상하고 유효하지 않은 구문입니다.

나는 네가하고있는 일에 대해 긍정적이지 않다. (NV의 두 번째 차원은 얼마나 클지, "NV (b, :) = [a; b]"의 수정 여부는 당신이 의도 한 것),하지만이 문법은 컴파일/실행되고 잘하면 당신이 올바른 방향으로 시작하게합니다.

n=2; 
g1= 1:1:10; 
g=10.^(g1/10); %SNR 

NV = zeros(n,n); % Create an empty n-by-n matrix 
       % Note: Defining the final matrix size outside of a loop 
       %  also improves performance 

for a= 0:g %diff SNR 
    for b= 1:n %DIFF USERS 
     NV(b,:)=[a;b]; % NOISE VAR, MATRIX FOR DIFF SNR AND DIFF USERS. 
    end 
end 
+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 그래서 "g"가 10 개의 다른 값을 주면, g 단위의 크기를 갖는 행렬 NV를 어떻게 만들 수 있습니까? – user2002030

+0

사용법은 http://www.mathworks.com/help/matlab/ref/zeros.html을 참조하십시오. 제로 기능들 중. Mathworks 문서는 매우 유용하며 일부 기본 기능에 대해 배우려면 해당 웹 사이트에서 약간의 독서를하는 것이 좋습니다. – statueuphemism

관련 문제