本文整理汇总了C++中mat::get_row方法的典型用法代码示例。如果您正苦于以下问题:C++ mat::get_row方法的具体用法?C++ mat::get_row怎么用?C++ mat::get_row使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mat
的用法示例。
在下文中一共展示了mat::get_row方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: covariance
/**
* Compute the covariance matrix of a set of inputs
* @param C The covariance matrix of X
* @param X A matrix of inputs (one input per row)
*/
void CovarianceFunction::covariance(mat& C, const mat& X) const
{
// ensure that data dimensions match supplied covariance matrix
assert(C.rows() == X.rows());
assert(C.cols() == X.rows());
if (X.rows() == 1)
{
C.set(0, 0, computeDiagonalElement(X.get_row(0)));
return;
}
// calculate the lower and upper triangles
double d;
for(int i=0; i<X.rows() ; i++)
{
for(int j=0; j<i; j++)
{
d = computeElement(X.get_row(i), X.get_row(j));
C.set(i, j, d);
C.set(j, i, d);
}
}
// calculate the diagonal part
for(int i=0; i<X.rows() ; i++)
{
C.set(i, i, computeDiagonalElement(X.get_row(i)));
}
}
示例2: generate_meas
//used for both spheric and hybrid multilateration
static
bool generate_meas(vec &meas, const bvec &method, const mat &bs_pos, const vec &ms_pos)
{
unsigned int method_len = length(method);
unsigned int nb_bs = bs_pos.cols();
bool column = true;
if(3 == nb_bs) {
nb_bs = bs_pos.rows();
column = false;
}
if((nb_bs < method_len) || (3 != length(ms_pos))) {
return false;
}
meas.set_size(method_len);
vec pos(3);
vec pos_ref(3);
pos_ref = column ? bs_pos.get_col(0) : bs_pos.get_row(0);
for(unsigned int k = 0; k < method_len; ++k) {
if(bin(1) == method[k]) { /* hyperbolic */
pos = column ? bs_pos.get_col(k + 1) : bs_pos.get_row(k + 1);
meas[k] = get_dist(pos, ms_pos) - get_dist(pos_ref, ms_pos);
}
else { /* spherical */
pos = column ? bs_pos.get_col(k) : bs_pos.get_row(k);
meas[k] = get_dist(pos, ms_pos);
}
}
return true;
}
示例3: distanceMin
/**
* Returns the maximum distance between any 2 points from X
*/
double MaxMinDesign::distanceMin(mat X)
{
double distMin = norm(X.get_row(1) - X.get_row(2));
double d;
for (int i=0; i<X.rows(); i++) {
vec x1 = X.get_row(i);
for (int j=0; j<i; j++) {
d = norm(x1 - X.get_row(j));
if (d<distMin) distMin = d;
}
}
return distMin;
}
示例4: computeDiagonal
/**
* Diagonal elements of the matrix cov(X,X).
*
* @param C A vector of diagonal elements C_i = cov(X_i, X_i)
* @param X A set of inputs (one per row)
*/
void CovarianceFunction::computeDiagonal(vec& C, const mat& X) const
{
// calculate the diagonal part
for(int i=0; i<X.rows() ; i++)
{
C.set(i, computeDiagonalElement(X.get_row(i)));
}
}
示例5: dist
/**
* Returns a vector of distances between the points in R and point y
*/
vec GreedyMaxMinDesign::dist(mat R, vec y)
{
vec distances(R.rows());
// For each point x in R
for (int i=0; i<R.rows(); i++) {
vec x = R.get_row(i);
distances(i) = weightedSquareNorm(x-y);
}
return distances;
}
示例6: subsample
ivec GreedyMaxMinDesign::subsample(mat X, int n)
{
if (n <= 0)
cerr << "Invalid sample size in GreedyMaxMinDesign::subsample(...)" << endl;
int imax;
ivec isample(n); // Indices of points in sample
ivec iremain; // Indices of remaining points
vec D; // Vector of min distances to sample
iremain = to_ivec(linspace(0,X.rows()-1,X.rows()));
// Start with location of maximum Z
max(X.get_col(X.cols()-1), imax);
isample(0) = imax;
iremain.del(imax);
// Add points having maximum minimum distance to sample
// until subsample size is reached
for (int i=1; i<n; i++)
{
vec xnew = X.get_row(isample(i-1)); // Last point added
vec Dnew = dist(X.get_rows(iremain), xnew); // Distances to xnew
// Update minimum distances to sample
if (D.length() == 0)
D = Dnew;
else
D = min(D,Dnew);
// Find point with max min distance
max(D,imax);
// Add it to sample
isample(i) = iremain(imax);
// And delete it from remainder
iremain.del(imax);
D.del(imax);
}
return isample;
}