如何在MATLAB中计算梯度?

我正在进行行人步伐检测(加速度)。我想从我的滤波信号中计算统计特征。我已经计算了一些特征,现在我想计算梯度。我的数据是1×37205的双精度类型。我使用带有移动窗口大小为2个样本和50%重叠的前一个窗口的for循环来计算特征。下面我附上了我尝试计算梯度的代码。我不确定这是否是正确的计算方法。此外,我也不明白使用梯度的目的是什么,它如何对步伐检测有用,以及如何处理梯度?有人能指导我或在MATLAB中提供任何代码帮助吗?

%%这里M是均值,V是我已经从滤波数据中计算出的方差
G = zeros(length(window:length(M)), 2);
for i = window:length(M)
    temp = gradient(M(i+1-window:i),V(i+1-window:i));
    G(i, 1) = temp(2, 1); % "c1"
    G(i, 2) = temp(2, 1); % "c2"
end

回答:

MATLAB最好的功能之一是其文档。如果您不熟悉如何获取特定函数的文档,可以在命令行中输入以下内容:

doc functionName

或者,对于在命令行中显示的“简短”文档,您可以输入:

help functionName

另请参阅此处链接的文档。

你的问题措辞不当,所以我将总结我所理解的内容并相应地回答:

  • 您有一个步伐检测数据(1*37205)双精度类型,我们称之为stepSignal
  • stepSignal是位置数据
  • 您希望窗口大小为2步,50%重叠。这是gradient函数的默认行为。

您不需要“for”循环来实现您的目标。根据文档,“gradient”可以接受一个输入。

请查看下面的代码,如果需要,请在原始问题中添加澄清说明。

%% 假设stepSignal已经导入到工作区
velocity = gradient(stepSignal);

最后一点,当您给“gradient”两个输入时,它会自动假设第二个输入是一个均匀间隔值。

Related Posts

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注