Code covered by the BSD License  

Highlights from
CATPAD

5.0

5.0 | 5 ratings Rate this file 34 Downloads (last 30 days) File Size: 4.38 KB File ID: #33453

CATPAD

by

 

26 Oct 2011 (Updated )

Concatenation of arbitrarily sized data along any dimension.

| Watch this File

File Information
Description

CATPAD - concatenate matrices with different sizes by padding with NaN.

  M = CATPAD(dim,A1, A2, A3, ..., AN) concatenates along the dimension
      DIM the arrays A1 through AN into one large matrix. The vectors do
      not need to have the same size, nor number of dimensions. The size
      of the output M is determined by the dimmention of concatenation,
      and the size of the inputs. Any inputs that are not the correct
      size will be padded with NaNs if the inputs are numeric. If they
      are strings, they will be padded with a space " ".

  [M TF] = CATPAD(...,'padval',padval) pads the input data with the value
      specified by PADVAL. The default is NaN for numeric inputs, and a
      space " " for string inputs.

  [M TF] = CATPAD(...) outputs ana array of logicals TF having true
      values when the values in that position of M were from the original
      data (i.e. not padded).

  Examples:
     a = 1:4; b = 1:5; c = []; d = 1:3; dim = 1;
     M = catpad(dim,a,b,c,d)
     M =
         1 2 3 4 NaN
         1 2 3 4 5
         1 2 3 NaN NaN
     % Note: The input "c" was empty, and therefore doesn't require it's
          % own row.

     a = rand(3); b = magic(5); c = rand([4 5 4]); dim = 3;
     M = catpad(dim,a,b,c);
     size(M)
          5 5 6

     str1 = 'What do you think of this function?';
     str2 = 'I like it!';
     dim = 1;
     M = catpad(1,str1,str2)
     M =
          What do you think of this function?
          I like it!

  Example: Find original NaNs
      a = 1:3; b = [2:5 NaN]; c = [1 NaN]; dim = 1;
      [M,tf] = catpad(dim,a,b,c)
      % find the original NaN
      [row,col] = find(tf & isnan(M))
      % -> row = [3 2] , col = [2 5]

      a = 1:3; b = 1; c = 1:4; dim = 1; padval = inf;
      M = catpad(dim,a,b,c,'padval',padval)
      M =
             1 2 3 Inf
             1 Inf Inf Inf
             1 2 3 4

  See also CAT, RESHAPE, STRVCAT, CHAR, HORZCAT, VERTCAT, ISEMPTY

By Jonathan Sullian - October 2011

Many thanks to Michael Völker for his function sub2allind which has made
  this function possible. Also, I would like to aknowledge Jos (10584)
  whose submission padcat has inspired this one.

Acknowledgements

Padcat and Sub2allind inspired this file.

MATLAB release MATLAB 7.12 (R2011a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (5)
21 Oct 2013 Dan K  
22 Aug 2013 Ivo  
24 Jan 2013 Heather

I second Harold's sentiment.

23 Jan 2013 Harold Bell

I just want to say that this function AWESOME.

26 Oct 2011 Mike Sheppard  
Updates
26 Oct 2011

Modified H1 line to more accurately reflect the functionality of the function.

26 Oct 2011

Expanded functionality to handle cell arrays.

Contact us