2013-01-22 109 views
1

我试图通过b得到矩阵a。但是,我得到了下面的代码错误。上线发生 的误差形成矩阵时出现错误,MATLAB

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

你知道你正在循环到'g'这是一个10 * 1向量,而不是标量吗? ps你的代码还有其他一些问题,但是这可能需要首先解决。 –

+0

(a; b)是什么意思?可能你更新(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×n的矩阵NV, – user2002030

+0

关于用法,请参见http://www.mathworks.com/help/matlab/ref/zeros.html的零功能。 Mathworks文档非常好,我建议您在该网站上阅读一些内容,以了解一些基本功能。 – statueuphemism