doubleの配列を返す関数があります。私のデバッガーでは、配列を昆虫化し、その値が{6.5、1.5}であることを確認します。ただし、配列をcoutに出力すると、「6.5,3.30525e+230」と表示されます。私の推測では、<<が値を変更しているか、正しくフォーマットされていません
double *result;
result = haar1d(series, 2, seriesAverage);
->ここのブレークポイントで、result [0]==6.5およびresult[1]==1.5が表示されます
for(int i = 0; i < 2; i++)
{
cout << result[i] << ",";
}
修正済み:これが私が最終的に得たものです。
vector<double> haar1d(vector<double> vec, double seriesAverage)
{
vector<double> transVec(vec.size(), 0);
vector<double>::size_type length = vec.size();
if(vec[0] == seriesAverage)
{
return vec;
}
int diffFromAvgs = length / 2;
for(int i = 0; i < length; i += 2)
{
double pairAverage = (vec[i] + vec[i + 1]) / 2;
transVec[i] = pairAverage;
transVec[diffFromAvgs+i] = vec[i] - pairAverage;
}
return haar1d(transVec, seriesAverage);
}
主に:
vector<double> result = haar1d(series, avg);
for(vector<double>::iterator it = result.begin(); it != result.end(); ++it)
{
cout << *it << ",";
}