In Matlab, does a pad command exist, which also pads in the negative dimension (therefore removing indices in a specified dimension)?
[Edit: I knew something did this – fft does this for the input, but it also takes the fft.]
I have a function which can receive input data x in n_dim dimensions.
I would like to remove all but n datapoints from a user specified dimension dim. I could use shiftdim to always make the specified dimension the first dimension; however, how do I code such that I do not need a finite number of colons to represent the dimensions of the input data x?
x = rand(01,12,01); % n_dim = 1
y = rand(04,12,01); % n_dim = 2
z = rand(04,12,07); % n_dim = 3
n = 3
see:
dim = 1 y = y(1:n, : ); z = z(1:n, :, : ); % Note that extra colons are needed depending on n_dim.
or:
dim = 2 x = x( 1:n ); y = y(:, 1:n, ); z = z(:, 1:n, : ); % Note that extra colons are needed depending on n_dim.
Do I need to use the shiftdim command to place dim in the first dimension, and then place the 1:n within the eval command along with a string variable which contains as many |,:|s as needed?
Best Answer