arrays - 计算 MATLAB 中给定持续时间值的时间步长之间的均值

标签 arrays matlab

例如,我有 5 个时间步长和一个持续时间值:

TimeSteps = [4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16];
Duration = [5, 3, 3];

我想为每个持续时间自动生成时间步长之间的均值。在这种情况下,结果将如下所示:

Result = [mean([4, 5, 6, 7, 8]), mean([10, 11, 12]), mean([14, 15, 16])]; 

这将导致:

Result = [6, 11, 15]; 

我有一个 474x1 的持续时间向量,所以我需要将其自动化。如果有人可以提供帮助,那就太好了。谢谢。

最佳答案

您需要将 mean 函数应用于您的 TimeSteps 的分区,其大小在 Duration 中:

Partition = mat2cell(TimeSteps, 1, Duration);
Result    = cellfun(@mean, Partition)

如果您是单线的粉丝:

Result = cellfun(@mean, mat2cell(TimeSteps, 1, Duration));

注意:请注意,此解决方案是针对行向量发布的;更改列向量的 mat2cell 调用。

关于arrays - 计算 MATLAB 中给定持续时间值的时间步长之间的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28499173/

相关文章:

MATLAB 在长时间的调试 session 中变慢

Java:链接列表节点在我的代码中不起作用

arrays - 将IEnumerable <T>转换为T []的最佳方法

C编程: String manipulation

arrays - 如何在 VBA 中向现有矩阵添加计数器列?

Java ArrayLists 到 JList

windows - 在 Windows 中将 .cu 文件转换为 .ptx 文件

string - 计算方程但忽略数学运算和括号的顺序

matlab - 尝试将颜色图应用于 MATLAB 中的条形图

python - 如何为实时系统制作opencv?