casa
$Rev:20696$
|
Concatenate two Arrays. More...
#include <ArrayUtil.h>
Public Member Functions | |
template<class T > | |
Array< T > | concatenateArray (const Array< T > &left, const Array< T > &right) |
Concatenate two Arrays.
<h3>Review Status</h3><dl><dt>Reviewed By:<dd>UNKNOWN<dt>Date Reviewed:<dd>before2004/08/25<dt>Test programs:<dd>tArrayUtil</dl>
concatenateArray concatenates two Arrays into a new Array.
The function concatenates two Arrays into a new Array. The shape of both arrays must match except for the last dimension. The shape of the resulting array is equal to that of the input arrays with its last dimension as the sum of both last dimensions.
An exception ArrayConformanceError is thrown when the shapes do not match.
The table system needed this function.
Vector<Int> vector1(5); Vector<Int> vector2(10); indgen (vector1); // fill with values 0..4 indgen (vector2); // fill with values 0..9 Vector<Int> result = concatenateVector (vector1, vector2);
The example above results in a vector with length 15 and values 0,1,2,3,4,0,1,2,3,4,5,6,7,8,9.
It can also be used with matrices or arrays with higher dimensionality as long as all dimensions but the last one have equal length.
Matrix<Int> matrix1 (3,4); Matrix<Int> matrix2 (3,5); Matrix<Int> matrix3 (4,4); // Concatenation of matrix1 and matrix 2 will succeed and result // in a 3x9 matrix. Matrix<Int> matrixConc = concatenateArray (matrix1, matrix2); if (matrixConc.shape() != IPosition(2,3,9)) { cout << "Error in shape of concatenated matrices" << endl; } // Concatenation of matrix1 and matrix3 will fail, because the // first dimensions have a different length (3 vs. 4). try { concatenateArray (matrix1, matrix2); } catch (ArrayConformanceError x) { cout << x.getMesg() << endl; }
Definition at line 169 of file ArrayUtil.h.
Array<T> casa::ArrayUtil_global_functions_concatenateArray::concatenateArray | ( | const Array< T > & | left, |
const Array< T > & | right | ||
) |