2016-05-30 33 views
0

基本上没有for/while循环或if语句。所以我认为冒号操作符是假设要使用的。试图在matlab中修改具有一定限制的未知大小的矩阵

我是Matlab新手,基本上以某种方式用于循环来完成几乎所有功能,无法找到任何在线资源来帮助快速解答,因此非常感谢。

本质上,目标是创建并返回一个基于输入矩阵的新矩阵。新矩阵仅包含原始的偶数索引元素,因此4x4矩阵将返回2x2,并且5x5也会返回2x2,因为第5行或列中的任何内容都不能同时包含偶数列和行。

我的代码:

function [A] = myFunction(M) 
[x y] = size(M); 

for a = 2:2:x 
    for b = 2:2:y 
     A(a/2, b/2) = M(a,b); 
    end 
end 
end 

哪些工作,但我想知道如何做到这一点没有for循环和使用冒号运算,所以我可以做,在其他应用程序,以及它是有道理的。

回答

2

很简单

A = M(2:2:end, 2:2:end); 

阅读更多信息和细节有关matrix indexing

+1

非常感谢,尤其是链接。 –