下面的代码,当我执行它时,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 ??
答案 0 :(得分:0)
命令提示符将显示未以分号跟随的所有计算。即使你要分配一个数组的一个元素,它也会显示整个数组。
p(1)=1
这显示了所有p,而不仅仅是第一个元素。在每个赋值语句或计算结束时加分号,如
p2(i)=0.5*(1-u2(i)^2)+q2(i);
然后在代码结束时写
u1
u2
这应该显示最终的载体