【问题标题】:Matlab: Refer to multiple, non consecutive elementsMatlab:引用多个不连续的元素
【发布时间】:2016-01-08 10:07:07
【问题描述】:

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

【问题讨论】:

  • 使用索引向量:strength([1:4,17:20])。逗号可选,可以用空格代替。

标签: arrays matlab


【解决方案1】:

就像 Andras 在他的评论中所说,你需要一个你希望包含在计算平均值中的索引向量:

正如您将使用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]))

【讨论】:

    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多