首页 > 解决方案 > 如何在 Scilab 的循环内制作动态矩阵?

问题描述

我在 Scilab 的 for 循环中有一个动态 3d 矩阵,其中值在每次迭代时都添加到矩阵中,如下面的代码片段所示。我的问题是,每次我打开 Scilab 并运行我的代码时,for 循环之后的行都会生成一个错误,上面写着“子矩阵定义不正确”。

我尝试删除'(ii,:,:)',没有错误,但输出不是我想要的。我再次添加它,代码工作得很好。当我关闭 Scilab,打开它,再次运行时,错误再次出现。有人可以告诉我有什么问题吗?还是有另一种方法可以在 for 循环中创建动态矩阵?

    for ii = 1:N
        Fn(ii,:,:) = repmat((1./VAL(ii)),[a b c]).*POP(ii,:,:);
        Fd(ii,:,:) = repmat((1./VAL(ii)),[a b c]);
    end

标签: matrixscilab

解决方案


至少,在您的循环之前,您应该首先初始化FnFd使其已知的最大大小。但是,在循环的两条内线中似乎存在大小不匹配,除非它a等于 1。


推荐阅读