2009-11-24 9 views

Respuesta

12

No sé de una manera multidimensional para hacerlo automáticamente, pero la indexación de MATLAB es lo suficientemente bueno si estás contento que lo especifique para cada dimensión:

a(1:2:end,1:2:end) 
+0

+1: De alguna manera, olvidé incluir la sintaxis 'end' en mi respuesta. Buena atrapada. ;) – gnovice

5

Esto debería funcionar para su ejemplo específico:

result = a([1 3],[1 3]); 

y más en general:

result = a(1:2:size(a,1),1:2:size(a,2)); 

Para más detalles acerca de la indexación en MATLAB, puede revisar la documentación here.

1
samples_x = floor(linspace(1, size(a,1), new_Nx)); 
samples_y = floor(linspace(1, size(a,2), new_Ny)); 
new_a = a(samples_x,samples_y) 
+0

+1 y bienvenido a Stack Overflow! Su respuesta podría ser aún más útil si explicara en pocas palabras lo que hace su código. Siéntase libre de usar el enlace editar debajo de su pregunta ... –

1

encontré esto hoy. A es la matriz original, muestreada cada elemento.

Adown=downsample(downsample(A,s)',s)' 

hacia abajo-muestras de la matriz verticalmente, transpone, a continuación, muestras de la dirección ortogonal, entonces transpone espalda.

Cuestiones relacionadas