2009-11-24 115 views

回答

12

我不知道的多维方式自动执行,但Matlab的索引是不够好,如果你很高兴将其指定为每个维度:

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

+1:不知何故,我忘了在我的答案中包含'end'语法。接得好。 ;) – gnovice 2009-11-24 19:15:06

5

这应该为你的具体工作,例如:

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

更普遍:

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

关于索引在MATLAB更多的细节,你可以检查出的文档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,欢迎来到Stack Overflow!如果你用几句话解释你的代码是干什么的,你的答案可能会更有用。随意使用您的问题下面的编辑链接... – 2011-11-02 21:25:54

1

我发现今天这个。 A是原始矩阵,每s元素采样一次。

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

它垂直下采样矩阵,转置,然后采样正交方向,然后转置回来。