2016-10-02 122 views

回答

0

你想完成什么?

在您的for-loop中,您的索引从1变为4。但是,您尝试访问x(i),其中x是一个空数组。因此,在第一次迭代中(i = 1),您正在访问未定义的x(1)。这会导致索引超出范围错误。

同样对于使用的那些()函数,你应该由逗号分隔的输入参数: ones(size(x(i)), x(i))

代码示例

x = [1 2 3; 1 4 3; 1 5 3; 1 6 3]; 
V = zeros(size(x, 1), 1); % initialize V 
for i = 1:1:size(x, 1) 
    V(i) = x(i, 1); 
end 

此示例返回从各行的第一元素的向量你的矩阵x。

V = [1; 1; 1; 1] 
+0

我想创建每个向量看起来像矩阵这样 V = 1 1 1 1 2 3,并在循环,使 所以是应该得到进入X1,X2,X3,X4 所以我应该是索引,这就是为什么我这样写它x(i) –

+0

啊,我明白了。问题是x(i)访问变量x的元素。如果你想迭代不同的向量,我建议你构造一个矩阵'x = [x1; X2; X3; x4]'并用'for i = 1:1:4'遍历它的行'x(i,:)'。 – imant

+0

有道理,非常感谢你 –