关于#matlab#的程序段是什么意思?

现代控制理论需要matlab仿真,给了范例程序,有一个地方看不懂啊,谁能解答一下啊?

for i=1:n
       L(i,1:j)=I(j:-1:1);
       j=j-1;
   end

括号里应该是I的列赋值给L的列,按照实际手算步骤,所以这个for循环里面到底啥意思,没学过matlab。

这个for循环是将矩阵I逆序赋值到矩阵L的上三角部分。其中n为L的行数,j为I的列数。 具体实现是,循环变量i从1到n,每次将矩阵I的后j个元素逆序赋值到L的第i行的前j个元素。j每次循环减1,保证每行只被赋值一次。具体实现代码如下:

for i=1:n
    L(i,1:j)=I(j:-1:1);
    j=j-1;
end

其中,j:-1:1是一个倒序生成的向量,用于将矩阵I的列逆序赋值到L的行中。

假设I=[a,b,c,d]
对于L的第1行,将I的[d,c,b,a]赋值给L第1行1 ~ 4列;
对于L的第2行,将I的[c,b,a]赋值给L的第2行的1 ~ 3列;
对于L的第3行,将I的[b,a]赋值给L的第3行的1 ~ 2列;
以此类推