Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 循环中覆盖的值:Matlab_Arrays_Matlab_Loops - Fatal编程技术网

Arrays 循环中覆盖的值:Matlab

Arrays 循环中覆盖的值:Matlab,arrays,matlab,loops,Arrays,Matlab,Loops,下面的代码,当我执行它时,ub,u,p,q数组显示了101次,因为代码中的ii=101。我的意思是循环不起作用。你能看一下吗 ii=101; dt=0.0001; t = 0:dt:1000; dx=0.01; %step size pi=4.*atan(1); fik=0.4; H1=0.5; H1D=0; A=0; AD=0.1; ADinit=AD; c1b=0.5; c2b=1-c1b; dc=0.001; for i=1:ii; x=(i-1)*dx; fikness

下面的代码,当我执行它时,ub,u,p,q数组显示了101次,因为代码中的ii=101。我的意思是循环不起作用。你能看一下吗

ii=101;
dt=0.0001;
t = 0:dt:1000;
dx=0.01; %step size
pi=4.*atan(1);
fik=0.4;
H1=0.5;
H1D=0;
A=0;
AD=0.1;
ADinit=AD;
c1b=0.5;
c2b=1-c1b;
dc=0.001;

for i=1:ii;
x=(i-1)*dx;
        fikness=fik*sin(pi*x);
        ub1(i)=(c1b-H1D*(x-0.5)+AD/2*(x-0.5)^2)/(H1-0.5*fikness-A*(x-0.5))
        ub2(i)=(c2b+H1D*(x-0.5)-AD/2*(x-0.5)^2)/(1-H1+0.5*fikness+A*(x-0.5))

end

c1=c1b+dc;
c2=1-c1;
for i=1:ii;
    x=(i-1)*dx;
        fikness=fik*sin(pi*x);
        u1(i)=(c1-H1D*(x-0.5)+AD/2*(x-0.5)^2)./(H1-0.5*fikness-A*(x-0.5))
        u2(i)=(c2+H1D*(x-0.5)-AD/2*(x-0.5)^2)./(1-H1+0.5*fikness+A*(x-0.5)) 
end

p1(1)=0.5*(1-u1(1)^2);
q1(1)=0;
p2(1)=0.5*(1-u2(1)^2);
q2(1)=0;

for i=2:ii

q1(i)=q1(i-1)-dx*(u1(i-1)-ub1(i-1))/dt
p1(i)=0.5*(1-u1(i)^2)+q1(i)
end 

for i=2:ii;
q2(i)=q2(i-1)-dx*(u2(i-1)-ub2(i-1))/dt
p2(i)=0.5*(1-u2(i)^2)+q2(i)
end

ub1、ub2、u1、u2、p1、p2、q1、q2=1*101,它们都有一行101列。如何访问ub1、ub2、u1、u2、p1、p2、q1、q2的整个数组???

命令提示符将显示所有不带分号的计算。即使指定数组的一个元素,它也会显示整个数组

p(1)=1
这显示了所有的p,而不仅仅是第一个元素。在每个赋值语句或计算的末尾加上分号,如

p2(i)=0.5*(1-u2(i)^2)+q2(i)

然后在代码结束时编写

u1
u2

这应该显示最后的向量

你是说像“u(:)”?我不知道它是什么意思。在for循环i中,从1到101。我没有你(1)你(2)。。。。。u(101)我的意思是1行101列。但它为u和其他列计算101乘以101的值。尝试转置它:
u1=u1'(注意单引号)。它将再次是101*101。我需要为每个值(如u1 u2 ub1 ub2)设置1*101…它们是我的意思是数组不包含某些整数,这就是为什么我不能使用分号分隔它们的原因。我看到的是相同的u1的101倍左右。