relevant Matlab code can be found in
...\toolbox\matlab\elmat\linspace.m
This function generates N points between min
and max
.
vector<double> linspace(double min, double max, int n) { vector<double> result; // vector iterator int iterator = 0; for (int i = 0; i <= n-2; i++) { double temp = min + i*(max-min)/(floor((double)n) - 1); result.insert(result.begin() + iterator, temp); iterator += 1; } //iterator += 1; result.insert(result.begin() + iterator, max); return result; }
template
std::vector linspace(const T& lo, const T& hi, const int32_t& N)
{
T incr = (hi – lo) / (N-1);
std::vector res(N);
for(int i = 0; i < N; ++i)
{
res[i] = lo + i * incr;
}
return res;
}