本文整理汇总了C#中Gesture.GetValue方法的典型用法代码示例。如果您正苦于以下问题:C# Gesture.GetValue方法的具体用法?C# Gesture.GetValue怎么用?C# Gesture.GetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gesture
的用法示例。
在下文中一共展示了Gesture.GetValue方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SampleSignal
public Gesture SampleSignal(Gesture signal)
{
var sampledValues = new List<double[]>();
var sampledSignal = new Gesture(sampledValues, signal.Label);
for (var j = 0; j < SampleSteps; ++j) {
sampledValues.Add(new double[3]);
for (var i = 0; i < 3; ++i) {
var findex = 1.0 * (signal.Length - 1) * j / (SampleSteps - 1);
var res = findex - (int) findex;
sampledSignal.SetValue(j, i, (1-res) * signal.GetValue((int)findex, i) + ((int)findex + 1 < signal.Length - 1 ? res * signal.GetValue((int)findex + 1, i) : 0));
}
}
return sampledSignal;
}
示例2: SampleSignal
public Gesture SampleSignal(Gesture signal)
{
var sampledValues = new List<double[]>();
var sampledSignal = new Gesture(sampledValues, signal.Label);
var min = double.MaxValue;
var max = double.MinValue;
for (var i = 0; i < signal.Length; ++i) {
for (var j = 0; j < 3; ++j) {
if (signal.GetValue(i, j) > max) max = signal.GetValue(i, j);
if (signal.GetValue(i, j) < min) min = signal.GetValue(i, j);
}
}
for (var i = 0; i < signal.Length; ++i) {
sampledValues.Add(new double[3]);
for (var j = 0; j < 3; ++j) {
sampledSignal.SetValue(i, j, (signal.GetValue(i, j) - min) / (max - min));
}
}
return sampledSignal;
}
示例3: CalcDistance
public static double CalcDistance(Gesture a, Gesture b)
{
int signalDimensions = a.Values[0].Length;
int signal1Length = a.Length;
int signal2Length = b.Length;
var distMatrix = new double[signal1Length, signal2Length];
var costMatrix = new double[signal1Length, signal2Length];
for (var i = 0; i < signal1Length; ++i) {
for (var j = 0; j < signal2Length; ++j) {
var vec = new List<double>();
for (var k = 0; k < signalDimensions; ++k) {
vec.Add(a.GetValue(i, k) - b.GetValue(j, k));
}
distMatrix[i, j] = PNorm(vec, 2);
}
}
for (var i = 0; i < signal1Length; ++i) {
costMatrix[i, 0] = distMatrix[i, 0];
}
for (var j = 1; j < signal2Length; ++j) {
for (var i = 0; i < signal1Length; ++i) {
if (i == 0) {
costMatrix[i, j] = costMatrix[i, j - 1] + distMatrix[i, j];
} else {
double cost;
var minCost = costMatrix[i - 1, j - 1] + distMatrix[i, j];
if ((cost = costMatrix[i - 1, j] + distMatrix[i, j]) < minCost) {
minCost = cost + OffsetPenalty;
}
if ((cost = costMatrix[i, j - 1] + distMatrix[i, j]) < minCost) {
minCost = cost + OffsetPenalty;
}
costMatrix[i, j] = minCost;
}
}
}
return costMatrix[signal1Length - 1, signal2Length - 1];
}