Scilab代码为子矩阵错误定义了错误

时间:2015-08-20 22:49:02

标签: scilab cellular-automata submatrix

我正在尝试为每个条目绘制2个标量和一个矩阵之间的3D图形。在编译时它给了我" Submatrix错误定义"第11行的错误。代码:

i_max= 3;
u = zeros(4,5);
a1 = 1;
a2 = 1;
a3 = 1;
b1 = 1;
hx = linspace(1D-6,1D6,13);
ht = linspace(1D-6,1D6,13);
for i = 1:i_max
    for j = 2:4
        u(i+1,j)=u(i,j)+(ht*(a1*u(i,j))+b1+(((a2*u(i,j+1))-(2*a2*u(i,j))+(a2*u(i,j-1)))*(hx^-2))+(((a3*u(i,j+1))-(a3*u(i,j-1)))*(0.5*hx^-1)));
        plot(ht,hx,u(i+1,j));
    end
end

完整的错误消息:

-->exec('C:\Users\deba123\Documents\assignments and lecture notes\Seventh Semester\UGP\Scilab\Simulation1_Plot.sce', -1)
+(((a3*u(i,j+1))-(a3*u(i,j-1)))*(0.5*hx^-1)))
                                          !--error 15 
Submatrix incorrectly defined.
at line      11 of exec file called by :    
emester\UGP\Scilab\Simulation1_Plot.sce', -1

请帮忙。

1 个答案:

答案 0 :(得分:0)

对于三维图形,您需要2个参数向量和一个函数值矩阵。所以我把你扩展到张量。 在代码中的每个操作中,我都添加了术语的当前维度。现在,给出了对计算的透明处理。对于绘图,您必须使用arr[size] = *arr[size].next; (单值)或plot3d(曲面)命令。 在3-dim图中,您需要两个地图2矢量surf,其中dim为n,m为标量(hx,ht)。因此,您可以使用结果达到(nxm)矩阵。是这样,你想做什么?目前,每个z条目有13个值,但每个数字都需要(13x13)。也许u(i,j,:) - 函数可以帮助你。

eval3d