@@ -208,7 +208,18 @@ impl<A> Array<A, Ix2> {
208
208
impl < A , D > Array < A , D >
209
209
where D : Dimension
210
210
{
211
- /// Append a row to an array with row major memory layout.
211
+ /// Append an array to the array
212
+ ///
213
+ /// The axis-to-append-to `axis` must be the array's "growing axis" for this operation
214
+ /// to succeed. The growing axis is the outermost or last-visited when elements are visited in
215
+ /// memory order:
216
+ ///
217
+ /// `axis` must be the growing axis of the array, or have length 0 or 1.
218
+ ///
219
+ /// - This is the 0th axis for standard layout arrays
220
+ /// - This is the *n*-1 th axis for fortran layout arrays
221
+ /// - If the array is empty (the axis or any other has length 0) or if `axis`
222
+ /// has length 1, then the array can always be appended.
212
223
///
213
224
/// ***Errors*** with a layout error if the array is not in standard order or
214
225
/// if it has holes, even exterior holes (from slicing). <br>
@@ -217,20 +228,28 @@ impl<A, D> Array<A, D>
217
228
///
218
229
/// The memory layout matters, since it determines in which direction the array can easily
219
230
/// grow. Notice that an empty array is compatible both ways. The amortized average
220
- /// complexity of the append is O(m) where *m* is the length of the row.
231
+ /// complexity of the append is O(m) where *m* is the number of elements in the
232
+ /// array-to-append (equivalent to how `Vec::extend` works).
221
233
///
222
234
/// ```rust
223
- /// use ndarray::{Array, ArrayView, array};
235
+ /// use ndarray::{Array, ArrayView, array, Axis };
224
236
///
225
237
/// // create an empty array and append
226
238
/// let mut a = Array::zeros((0, 4));
227
- /// a.try_append_row(ArrayView::from(&[1., 2., 3., 4.])).unwrap();
228
- /// a.try_append_row(ArrayView::from(&[0., -2., -3., -4.])).unwrap();
239
+ /// let ones = ArrayView::from(&[1.; 8]).into_shape((2, 4)).unwrap();
240
+ /// let zeros = ArrayView::from(&[0.; 8]).into_shape((2, 4)).unwrap();
241
+ /// a.try_append_array(Axis(0), ones).unwrap();
242
+ /// a.try_append_array(Axis(0), zeros).unwrap();
243
+ /// a.try_append_array(Axis(0), ones).unwrap();
229
244
///
230
245
/// assert_eq!(
231
246
/// a,
232
- /// array![[1., 2., 3., 4.],
233
- /// [0., -2., -3., -4.]]);
247
+ /// array![[1., 1., 1., 1.],
248
+ /// [1., 1., 1., 1.],
249
+ /// [0., 0., 0., 0.],
250
+ /// [0., 0., 0., 0.],
251
+ /// [1., 1., 1., 1.],
252
+ /// [1., 1., 1., 1.]]);
234
253
/// ```
235
254
pub fn try_append_array ( & mut self , axis : Axis , array : ArrayView < A , D > )
236
255
-> Result < ( ) , ShapeError >
0 commit comments