Matlab:参考多个非连续元素

时间:2016-01-07 23:07:46

标签: arrays matlab

在Matlab中,有任何方法可以在同一行中引用一维数组中的多个非连续元素,例如。就像是: mean(strength(1:4,17:20)) 我想计算一个名为strength等数组的第1到第4个元素和第17个到第20个元素的平均值。除了显然一个逗号不起作用,因为那将是双索引,就好像它是一个矩阵,当它是1D。是否有其他符号可以代替逗号来执行此操作,还是需要其他技巧来执行此操作?

1 个答案:

答案 0 :(得分:1)

就像安德拉斯在评论中所说,你需要一个你希望包含在平均值计算中的指数的矢量:

正如您使用strength(i)引用向量的第i个值一样,您可以使用向量而不是i,这将为所有指定的值提供另一个向量:

indexVector = [1:4, 17:20];
values = strength(indexVector);

这将为您提供长度为8的一维向量,其中包含原始strength向量的值1:4和17:20,这样您就可以使用mean(strength)

您可以绕过将这些写入变量,只需使用:

mean(strength([1:4, 17:20]))