如何在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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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