如何在MATLAB中对矩阵进行采样?

Nat*_*man 7 matlab matrix downsampling

我在MATLAB中有一个矩阵,我想从中获取每个其他条目:

a =

     1     5     9    13
     2     6    10    14
     3     7    11    15
     4     8    12    16
Run Code Online (Sandbox Code Playgroud)

而且我要:

result =

     1     9    
     3    11    
Run Code Online (Sandbox Code Playgroud)

如果没有for循环,我怎么能这样做?

Wil*_*son 12

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

a(1:2:end,1:2:end)
Run Code Online (Sandbox Code Playgroud)


gno*_*ice 5

这适用于您的具体示例:

result = a([1 3],[1 3]);
Run Code Online (Sandbox Code Playgroud)

更一般地说:

result = a(1:2:size(a,1),1:2:size(a,2));
Run Code Online (Sandbox Code Playgroud)

有关在MATLAB中建立索引的更多详细信息,可以在此处查看文档.