use*_*243 1 c++ arrays for-loop multiplication
我知道这是一个基本问题,但我是一个对C++很新的Python用户
我需要(cosmology.bias_eff)使用一个for循环来计算一个函数,输入参数(Mass_min)需要乘以一个数组(M_ratio).
我在这里使用两个循环犯了一个错误.for
vector<double> M_ratio = {1.0,0.9,1.1,1.05,1.1,1.15,1.2,1.25,1.2};
double Mass_min = 2e13;
double Delta0 = 200.0;
for (redshift=0.0;redshift<1.7;redshift=redshift+0.2)
{
for (size_t i=0; i<M_ratio.size(); i++)
{
double Delta = cosmology.DeltaR(Delta0, redshift);
double bias_eff = cosmology.bias_eff(M_ratio[i]*Mass_min,redshift,Delta);
cout << bias_eff <<"," << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
是我想,每一个redshift在for循环中,我要Mass_min被相乘M_ratio,
即为redshift = 0.0, Mass_min = Mass_min*1.0,redshift = 0.2, Mass_min = 0.9*Mass_min等等.
您只需要一个循环:
vector<double> M_ratio = {1.0,0.9,1.1,1.05,1.1,1.15,1.2,1.25,1.2};
double redshift;
int i;
for (redshift=0.0,i=0; i<M_ratio.size(); i++,redshift+=0.2) {
double Delta = cosmology.DeltaR(Delta0, redshift);
double bias_eff = cosmology.bias_eff(M_ratio[i]*Mass_min,redshift,Delta);
cout << bias_eff <<"," << endl;
}
Run Code Online (Sandbox Code Playgroud)
在每次迭代中,redshift以0.2递增,同时i递增1.在循环内部进行所需的计算.