---------------------------------------------------------------------------------------------------------------
Description::
This is the basic C++ program of C++ armadillo library which shows how to get the element of matrix which are non finite numbers. It can be carried out by the help of inbuilt function "find_nonfinite" in armadillo library. It takes one parameter i.e input matrix name.
• Return a column vector containing the indices of elements of X that are non-finite (ie. ±Inf or NaN)
• The output vector must have the type uvec (ie. the indices are stored as unsigned integers of type uword)
• X is interpreted as a vector, with column-by-column ordering of the elements of X
---------------------------------------------------------------------------------------------------------------
Program::

#include <iostream>
using namespace std;
using namespace arma;

int main()
{
//initialize the random generator
//Create a 5 x 5 random matrix and printing it
mat A = randu<mat>(5,5); //random matrix of size 5 x 5 (generared by this syntax)
A(1,1) = datum::inf; //replacing values at (1,1) and (2,2) of matrix A A(2,2) = datum::nan; uvec indices = find_nonfinite(A);
cout << "Matrix A::\n"<<endl;
cout<< A << endl;
cout << "Vector indices::\n"<<endl;
cout << indices << endl; A.elem( find_nonfinite(A) ).zeros(); //making non finite elements zero and displaying cout << "Matrix A::\n"<<endl;
cout<< A << endl; return 0;
}
---------------------------------------------------------------------------------------------------------------
Commands to run program on terminal::
g++ filename.cpp -o objectname -O2 -larmadillo

\$ ./objectname
---------------------------------------------------------------------------------------------------------------
Output::

Matrix A::

0.7868   0.4049   0.2742   0.8571   0.2393
0.2505      inf   0.5610   0.4998   0.3201
0.7107   0.0227      nan   0.4194   0.9105
0.9467   0.5206   0.5439   0.7443   0.1648
0.0193   0.3447   0.5219   0.2492   0.2455

Vector indices::

6
12

Matrix A::

0.7868   0.4049   0.2742   0.8571   0.2393
0.2505        0   0.5610   0.4998   0.3201
0.7107   0.0227        0   0.4194   0.9105
0.9467   0.5206   0.5439   0.7443   0.1648
0.0193   0.3447   0.5219   0.2492   0.2455

#### More Articles of Shubham Loya:

Name Views Likes
C++ OpenCV cv::trace() 1762 1
C++ Armadillo :: Real and Imaginary part 1844 1
C++ OpenCV cv::perspectiveTransform() 5804 1
C++ Armadillo :: find_nonfinite 875 2
C++ Armadillo introduction and installation 667 1
C++ Armadillo :: Kron 1495 1
C++ Armadillo :: Accessing row and column and operations on it 1697 1
C++ Armadillo :: cond 550 2
C++ Armadillo :: pseudo-inverse 3171 1
C++ OpenCV cv::flip() 2315 1
C++ OpenCV cv::transpose() 7683 1
C++ Armadillo :: any 569 2
C++ Armadillo :: Max and Min of matrices 1036 1
C++ OpenCV cv::pow() 2624 1
C++ Armadillo :: fliplr and flipud 1125 2
C++ Armadillo :: Sort 1362 1
C++ Armadillo :: Determinant of Matrix 1016 1
C++ Armadillo :: Indices of Unique elements of matrix 1069 1
C++ Armadillo :: eps 556 3
C++ Armadillo :: Inverse 1891 1
C++ Armadillo :: Transpose of Matrix 1424 1
C++ Armadillo :: Basic Arithmetic Operations 496 1
C++ Armadillo :: Cross Product of vectors 1493 4
C++ OpenCV program to play a video 1449 1
C++ Armadillo :: Diagonal of Matrix 1089 1
C++ Armadillo :: Absolute value of Matrix 1323 1
C++ Armadillo :: Conj 552 2
C++ Armadillo :: expmat 1049 2
C++ OpenCV Input from Camera 2261 1
C++ OpenCV program to convert BGR image to grayscale image 6491 1
C++ Armadillo :: Intersect 831 2
C++ Armadillo :: Nonzeros 1108 2
C++ Armadillo :: Dot Product of vectors 1839 2
C++ OpenCV:: Transforming BGR image to Grey scale image 641 2
C++ OpenCV to rotate an image 11699 1
C++ Armadillo :: Unique elements of matrix 895 1
C++ Armadillo :: Log Determinant 877 1
C++ Armadillo :: Sort_index 1665 2
C++ Armadillo :: Max Min 1824 1
C++ Armadillo :: Shift 980 1
C++ Armadillo :: Square root of Matrix 1911 1
C++ OpenCV cv::cvtColor() 2715 1