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

发布于 2024-10-01 02:26:38 字数 202 浏览 6 评论 0原文

我不知道为什么我不能在 Scilab 中执行此操作。

-->foo=zeros(500);

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

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

I'm not sure why I can't do this in Scilab.

-->foo=zeros(500);

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

Why do I get the 'Invalid index' error? I thought I had initialized foo as an array with 500 elements, each of which was set to 0?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

对风讲故事 2024-10-08 02:26:38

在 Scilab 中,您必须同时给出行数和列数。所以,如果你想创建一个 500x500 矩阵,你需要说 Zeros(500, 500)。如果你想要一个 500x1 的向量,你需要说 Zeros(500, 1)。

如果要创建一个具有与另一个矩阵(例如 A)完全相同的行和列的零矩阵,则需要使用 Zeros(A)。这就是混乱的根源。

在 Scilab 中,zeros(500) 会将 500 作为 1x1 矩阵并生成大小为 1x1 的 Zeros 矩阵,即 [0]。在 MATLAB 中,假设是方阵,zeros(500) 将采用 500 作为所需矩阵的大小。

In Scilab, you have to give both the number of rows as well as the number of columns. So, if you want to create a 500x500 matrix, you need to say zeros(500, 500). If you want a 500x1 vector, you need to say zeros(500, 1).

If you want to create a zeros matrix that has precisely as many rows and columns as another matrix (say A), you need to say zeros(A). This is where the confusion stems from.

In Scilab, zeros(500) would take 500 as a 1x1 matrix and generate a zeros matrix of size 1x1, that is [0]. In MATLAB, zeros(500) would take 500 to be the size of the matrix required, assuming a square matrix.

傲世九天 2024-10-08 02:26:38

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

如果 Scilab 中的 zeros 确实如此bot 的行为就像 Matlab 中的 zeros 我无能为力。

If zeros in Scilab behaves just like zeros in Matlab the call zeros(500) creates a 500x500 array of 0s. That said, foo(300) would be a valid Matlab expression as Matlab understands what it calls 'linear indexing' on arrays of rank greater than 1.

If zeros in Scilab does bot behave just like zeros in Matlab I can't help.

匿名。 2024-10-08 02:26:38

printf("%d\n",Md(y,u))
!--错误21
Índice 无效。
在 exec 文件的第 69 行调用:

como soluciono esto?

printf("%d\n",Md(y,u))
!--error 21
Índice inválido.
at line 69 of exec file called by :

como soluciono esto?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文