我不确定为什么我不能在 Scilab 中做到这一点。
-->foo=zeros(500);
-->foo(300)
!--error 21
Invalid index.
为什么我会收到“无效索引”错误?我以为我已经将 foo 初始化为一个包含 500 个元素的数组,每个元素都设置为 0?
在 Scilab 中,您必须同时提供行数和列数。所以,如果你想创建一个 500x500 的矩阵,你需要说 zeros(500, 500)。如果你想要一个 500x1 的向量,你需要说 zeros(500, 1)。
如果要创建一个行和列与另一个矩阵(例如 A)完全相同的 zeros 矩阵,则需要说 zeros(A)。这就是混乱的根源。
在 Scilab 中,zeros(500) 将 500 作为 1x1 矩阵并生成大小为 1x1 的 zeros 矩阵,即 [0]。在 MATLAB 中,zeros(500) 将采用 500 作为所需矩阵的大小,假设为方阵。
如果zeros
在 Scilab 中的行为就像zeros
在 Matlab 中一样,则调用zeros(500)
会创建一个 500x500 的 0 数组。也就是说,这foo(300)
将是一个有效的 Matlab 表达式,因为 Matlab 理解它所谓的对秩大于 1 的数组的“线性索引”。
如果zeros
在 Scilab 中机器人的行为就像zeros
在 Matlab 中一样,我将无能为力。
printf("%d\n",Md(y,u)) !--错误 21 无效。在 exec 文件的第 69 行调用:
como soluciono esto?