Matlab 用于从n-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)

我根据一本书中的理论代码来解一个特定的矩阵

我的问题很简单,我设置了单列矩阵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)

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)