Truncar uma matriz em uma dimensão especificada no Matlab

1

No Matlab, existe um comando pad , que também preenche a dimensão negativa. (portanto, removendo índices em uma dimensão especificada)?

[Edit: Eu sabia que algo fazia isso - fft faz isso para a entrada, mas também leva o fft primeiro.]

Eu tenho uma função que pode receber dados de entrada x em n_dim dimensions.

Gostaria de remover todos, exceto n datapoints de uma dimensão especificada pelo usuário dim .
Eu poderia usar shiftdim para sempre fazer a dimensão especificada a primeira dimensão; no entanto, como codifico de forma que eu não precise de um número finito de dois-pontos? para representar as dimensões dos dados de entrada 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

veja:

dim = 1
y = y(1:n, :    );
z = z(1:n, :, : ); % Note that extra colons are needed depending on n_dim.

ou:

dim = 2

x = x(   1:n    );
y = y(:, 1:n,   );
z = z(:, 1:n, : ); % Note that extra colons are needed depending on n_dim.

Preciso usar o comando shiftdim para colocar dim na primeira dimensão,
e, em seguida, coloque o 1:n dentro do comando eval
junto com uma variável string que contém quantos ,: s, conforme necessário?

    
por kando 29.06.2016 / 15:47

0 respostas

Tags