當前位置: 首頁>>代碼示例>>C++>>正文


C++ VectorXd::fill方法代碼示例

本文整理匯總了C++中eigen::VectorXd::fill方法的典型用法代碼示例。如果您正苦於以下問題:C++ VectorXd::fill方法的具體用法?C++ VectorXd::fill怎麽用?C++ VectorXd::fill使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在eigen::VectorXd的用法示例。


在下文中一共展示了VectorXd::fill方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。

示例1: operate

	virtual void operate() {
////		pi = boost::math::constants::pi<double>();
//
		inputjpjv.resize(DOF * 2, 1); /*!Has to be scaled 10 times*/
		inputjpjv[0] = 10 * this->jpInputActual.getValue()[0];
		inputjpjv[1] = 10 * this->jpInputActual.getValue()[1];
		inputjpjv[2] = 10 * this->jpInputActual.getValue()[2];
		inputjpjv[3] = 10 * this->jpInputActual.getValue()[3];
		inputjpjv[4] = 10 * this->jvInputActual.getValue()[0];
		inputjpjv[5] = 10 * this->jvInputActual.getValue()[1];
		inputjpjv[6] = 10 * this->jvInputActual.getValue()[2];
		inputjpjv[7] = 10 * this->jvInputActual.getValue()[3];
//
//		//-----------------------------------SECTION ONE-----------------------------------------------------//
//
		int num_priors = priors.rows(); // priors comes as a rows
		int num_inp = 8; //inputjpjv.rows();   ----------------------------------SHOULDNOT DO THIS ------------//
		int k = 0;
		p.resize(num_priors, 1);
		h.resize(num_priors, 1);
		long double prob_input = 0;
//		//-------------------------------SECTION TWO---------------------------------------------------//
//
		for (k = 0; k < num_priors; k++) {
			double coeff = pow((2 * 3.14), (inputjpjv.rows()) / 2)   // replace pi by 3.14
					* det_tmp_tmp[k];
			double exponential_part = (-0.5
					* (((inputjpjv - input_mean_matrix.col(k)).transpose())
							* (tmp_inv.block(num_inp * k, 0, num_inp, num_inp)))
					* (inputjpjv - input_mean_matrix.col(k)))(0, 0);

			double result = (1 / coeff) * exp(exponential_part);

			double prob_input_tmp = result;/*gausspdf(inputjpjv,*/
			double tmp_Pk = priors(k) * prob_input_tmp;
			p(k) = tmp_Pk;
			prob_input = prob_input + tmp_Pk;

		}
//
//		//SUB
//
//		p[0] = 0.14;
//		p[1] = 0.14;
//		p[2] = 0.14;
//		p[3] = 0.14;
//		p[4] = 0.14;
//		p[5] = 0.14;
//		p[6] = 0.16;
//		prob_input = 1.0;
//
//		//-------------------------------SECTION THREE---------------------------------------------------//
//
		for (k = 0; k < num_priors; k++) {
			double h_k = p(k) / prob_input;
			h(k) = h_k;
		}
//
//		h[0] = 0.14;
//		h[1] = 0.14;
//		h[2] = 0.14;
//		h[3] = 0.14;
//		h[4] = 0.14;
//		h[5] = 0.14;
//		h[6] = 0.16;
//		//-------------------------------SECTION FOUR---------------------------------------------------//
//

		f_hat.resize(num_op, 1);
		f_hat.fill(0.0);


		for (k = 0; k < num_priors; k++) {
			f_hat = f_hat
					+ h(k)
							* (A_matrix.block(num_op * k, 0, num_op, num_inp)
									* inputjpjv + B_matrix.col(k));
		}

//		f_hat.resize(num_op, 1);
//
//		f_hat[0] = 0.5;
//		f_hat[1] = 0.5;
//		f_hat[2] = 0.5;
//		f_hat[3] = 0.5;
//
//		//-------------------------------SECTION FIVE---------------------------------------------------//
//
		tmp_jt[0] = f_hat[0];
		tmp_jt[1] = f_hat[1];
		tmp_jt[2] = f_hat[2];
		tmp_jt[3] = f_hat[3];
//		tmp_jt[0] = 0;
//		tmp_jt[1] = 0;
//		tmp_jt[2] = 0;
//		tmp_jt[3] = 0;
		this->error_outputValue->setData(&tmp_jt);

	}
開發者ID:ravipr009,項目名稱:gwam-simulator,代碼行數:99,代碼來源:GMM.hpp


注:本文中的eigen::VectorXd::fill方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。