Matlab 用于从n-1位置到1位置的循环设置
我根据一本书中的理论代码来解一个特定的矩阵 我的问题很简单,我设置了单列矩阵X的最后一个值等于单列矩阵Z的最后一个值 在这之后,我会选择第二个循环,直到第一个循环 我不知道如何用代码的方式纠正这个错误 这本书有“i=n-1,…,1” 如果它是i=1,…,n-1,那就容易了 我尝试了I=(n-1):1 这个i=(n-1):-1:1 不起作用。返回值为空 要明确代码,请执行以下操作:Matlab 用于从n-1位置到1位置的循环设置,matlab,matrix,octave,Matlab,Matrix,Octave,我根据一本书中的理论代码来解一个特定的矩阵 我的问题很简单,我设置了单列矩阵X的最后一个值等于单列矩阵Z的最后一个值 在这之后,我会选择第二个循环,直到第一个循环 我不知道如何用代码的方式纠正这个错误 这本书有“i=n-1,…,1” 如果它是i=1,…,n-1,那就容易了 我尝试了I=(n-1):1 这个i=(n-1):-1:1 不起作用。返回值为空 要明确代码,请执行以下操作: i=n-1:1 x(i,1)=z(i,1)-u(i,i+1)*x(i+1,1) 如果n=4,我已经有了x(4)
i=n-1:1
x(i,1)=z(i,1)-u(i,i+1)*x(i+1,1)
如果n=4,我已经有了x(4)
sox(3)=z(3)-u(3,4)*X(4,1)
更多代码:
n=4;
Matrix=[2,-1,0,0,1;-1, 2,-1,0,0;0,-1,2,-1,0;0,0,-1,2,1];
u=eye(4,4);
l(1,1)=Matrix(1,1);
u(1,2)=Matrix(1,2)/l(1,1);
z(1,1)=Matrix(1,n+1)/l(1,1);
for i=2:n-1
l(i,i-1)=Matrix(i,i-1);
l(i,i)=Matrix(i,i)-l(i,i-1)*u(i-1,i);
u(i,i+1)=Matrix(i,i+1)/l(i,i);
z(i,1)=(Matrix(i,n+1)-l(i,i-1)*z(i-1,1))/l(i,i);
endfor
l(n,n-1)=Matrix(n,n-1);
l(n,n)=Matrix(n,n)-l(n,n-1)*u(n-1,n)
z(n,1)=(Matrix(n,n+1)-l(n,n-1)*z(n-1,1))/l(n,n)
x(n,1)=z(n,1);
for i=(1-n):-1:1
x(i,1)=z(i,1)-u(i,i+1)*x(i+1,1);
endfor
你能再多看一下这个节目吗?这是否在for循环中:如果不是,请尝试i=n-1:-1:1@ClintonWinant是的,我用完整的代码编辑了这篇文章,因为它没有那么大,并且给出了z和u来自哪里的概念。U是上矩阵,L是下矩阵。我发布的代码有n-1:-1:1的尝试。它没有返回任何值。@ClintonWinant刚刚看到了我的错误,基督lol。一切都很好地解决了。如果你看不到,那是因为我设置了(1-n)