创建矩阵时,我得到的错误是"索引超出矩阵维度"

时间:2016-10-02 09:59:00

标签: matlab matrix

我想用每个向量创建一个Matrix V,但是我得到这个错误索引超过矩阵维度。我不明白为什么这不起作用,我错过了什么?

x1=[1 2 3];
x2=[1 4 3];
x3=[1 5 3];
x4=[1 6 3];
x=[];
V=[];    


for i=1:1:4
         V=[ones(size(x(i))) x(i)]
end

v =

     []


V =

     []

Index exceeds matrix dimensions.

1 个答案:

答案 0 :(得分:0)

你想要完成什么?

在你的for循环中你的索引从1到4(包括1和4)。然而,您尝试访问x(i),其中x是一个空数组。因此,在第一次迭代(i = 1)中,您正在访问未定义的x(1)。这会导致索引超出界限错误。

另外,对于使用ones()函数,您应该用逗号分隔输入参数: 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]