尝试访问数组元素时Scilab中的索引错误无效

时间:2010-11-06 10:14:57

标签: matlab scilab

我不确定为什么我不能在Scilab中这样做。

-->foo=zeros(500);

-->foo(300)
         !--error 21 
Invalid index.

为什么我会收到“无效索引”错误?我以为我已经将foo初始化为一个包含500个元素的数组,每个元素都被设置为0?

3 个答案:

答案 0 :(得分:2)

在Scilab中,您必须同时提供行数和列数。因此,如果要创建500x500矩阵,则需要说零(500,500)。如果你想要一个500x1向量,你需要说零(500,1)。

如果要创建一个零行矩阵,其行和列与另一个矩阵(例如A)一样多,则需要使用零(A)。这就是混乱的源头所在。

在Scilab中,零(500)将500作为1x1矩阵并生成大小为1x1的零矩阵,即[0]。在MATLAB中,假设一个方阵,零(500)将需要500作为所需矩阵的大小。

答案 1 :(得分:1)

如果Scilab中的zeros与Matlab中的zeros行为相同,则调用zeros(500)会创建一个500x500的0数组。也就是说,foo(300)将是一个有效的Matlab表达式,因为Matlab在秩大于1的数组上理解它所谓的“线性索引”。

如果Scilab中的zeros机器人的行为与Matlab中的zeros一样,我无能为力。

答案 2 :(得分:0)

的printf( “%d \ n” 个,MD(Y,U))                                   ! - 错误21 Índiceinválido。 在exec文件的第69行调用:

como soluciono esto?