尝试在matlab中修改未知大小的矩阵,但有一定的限制

时间:2016-05-30 05:35:30

标签: matlab loops vectorization colon

基本上没有for / while循环或if语句。因此,我假设使用冒号运算符。

我是Matlab的新手,并且基本上以某种方式使用循环来完成几乎所有内容,并且无法找到任何在线资源来提供帮助,因此非常感谢快速回答。

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

我的代码:

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循环和使用冒号操作符的情况下执行此操作,以便我可以在其他应用程序中执行此操作。

1 个答案:

答案 0 :(得分:2)

非常简单

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

阅读matrix indexing了解更多信息和详细信息。