【问题标题】:Matrix operations in MatLabMatLab 中的矩阵运算
【发布时间】:2012-04-24 18:51:41
【问题描述】:

我有一个在 MatLab 中创建的 10 X 10 矩阵 A。矩阵中的所有值都在 0 到 100 之间。假设我要:

  1. 用零替换 A
  2. 将 A > 90 的所有元素替换为无穷大
  3. 将 30 到 50 之间的所有值提取到一个新向量中。

我可以在不编写脚本的情况下做到这一点吗?我可以通过带有一些简单 for 循环的脚本轻松做到这一点,但是有没有可用的快捷方式?任何帮助将不胜感激!

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    所有这些事情都非常容易使用逻辑索引来完成:

    上面的每一个操作都可以很容易地使用一个或两个命令来完成。但是,每个操作都必须独立于其他两个操作来完成。您不能在一行中完成所有 3 个操作。

    1.

    smallIdx = A<10;
    A(smallIdx) = 0;
    % One Line Version
    A(A<10) = 0; 
    

    2.

    bigIdx = A>90;
    A(bigIdx)=inf;
    % One Line Version
    A(A>90) = inf;
    

    3.

    middleIdx = A>30 & A<50;
    newVector = A(middleIdx); 
    % One Line Version
    newVector = A(A>30 & A<50);
    

    新向量是一个向量,不会像 A 那样是正方形的

    【讨论】:

      【解决方案2】:

      设置任意 3 × 3 矩阵 a.编写一些命令行语句来执行以下操作 对 a 的操作: (a) 交换第 2 栏和第 3 栏; (b) 添加第四列(0); (c) 插入一行1作为a的新的第二行(即移动当前的第二行和第三行 向下); (d) 删除第二列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-13
        • 2015-10-29
        • 2013-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多