在向量存在之前用“ end”创建索引数组

时间:2019-04-10 12:59:15

标签: arrays matlab indexing matrix-indexing

我只是想知道在知道向量的大小之前是否可以使用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

2 个答案:

答案 0 :(得分:3)

您可以设置匿名功能以类似方式操作

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索引的情况下就无法建立索引数组。

答案 1 :(得分:1)

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

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

功能:

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