【问题标题】:Trying to modify a matrix of unknown size in matlab with certain restrictions尝试在具有某些限制的matlab中修改未知大小的矩阵
【发布时间】:2016-05-30 05:35:30
【问题描述】:

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

我是 Matlab 新手,基本上以一种或另一种方式使用 for 循环来完成几乎所有事情,但找不到任何在线资源来提供帮助,因此非常感谢快速回答。

本质上,目标是根据输入的矩阵创建并返回一个新矩阵。新矩阵仅包含原始的偶数索引元素,因此 4x4 矩阵将返回 2x2,而 5x5 也将返回 2x2,因为第 5 行或第 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 循环和使用冒号运算符的情况下做到这一点,以便我可以在其他应用程序中以及它有意义的地方这样做。

【问题讨论】:

    标签: matlab loops vectorization colon


    【解决方案1】:

    很简单

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

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

    【讨论】:

    • 非常感谢,特别是链接。
    猜你喜欢
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    相关资源
    最近更新 更多