在 vector 存在之前用 'end' 创建索引数组

Create indexing array with 'end' before vector exists

我只是想知道是否有一种方法可以在知道向量的大小之前使用 end 进行索引?它应该适用于不同大小的数组。像这样:

subvector = (2:end) % illegal use of end

A=[1 2 3];
B=[4 5 6 7];

A(subvector) % should be 2 3
B(subvector) % should be 5 6 7

您可以设置一个匿名函数以类似的方式运行

f_end = @(v) v(2:end);

A = [1 2 3];
B = [4 5 6 7];

f_end( A ); % = [2 3];
f_end( B ); % = [5 6 7];

我认为这是您可以做到的唯一方法,因为您无法在不知道 end 索引的情况下设置索引数组。

没有索引或使用 end,可以删除第一个元素:

f_end = A;
f_end[1] = [];

作为函数:

function x = f_end(y, n)
    x = y;
    x[1:n]=[]; % deletes the first n elements