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