“end+1”行在这里做什么?

  • 本文关键字:在这里 end+1 matlab
  • 更新时间 :
  • 英文 :


考虑下面的MATLAB代码:

degree = 6;
out = ones(size(X1(:,1)));
for i = 1:degree
    for j = 0:i
        out(:, end+1) = (X1.^(i-j)).*(X2.^j);
    end
end

我不确定我看到end+1指数是如何运作的。在这段代码中没有先前定义的名为end的变量。

end写入下标,相当于写入指定维数的数组中最后一个元素的索引,详见官方文档:

end函数还可以作为索引表达式的最后一个索引。
在此上下文中,end = (size(x,k))作为k索引的一部分使用。使用X(3:end)X(1,1:2:end-1)的例子当使用end来增长数组时,如X(end+1)=5,确保X先存在

在您的例子中(以粗体突出显示),out(:, end+1)意味着矩阵out随着i的每次迭代在第二次元中增长。

end是Matlab中的关键字,可用于数组索引,并且始终表示该维度中的最后一个元素。

所以out(:, end)是最后一列。out(end, :)是最后一行。out(1, end)是第一行的最后一个元素

这里,当out(:, end+1)指向超过矩阵末尾的列时,赋值会自动增长矩阵,将刚刚计算的向量作为右侧的新列添加。

相关内容

最新更新