0

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

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

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

4

2 回答 2

4

使用逻辑索引可以很容易地完成所有这些事情:

使用一个或两个命令可以很容易地完成上述每个操作。但是,每个操作都必须独立于其他两个操作来完成。您不能在一行中完成所有 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 那样是正方形的

于 2012-04-24T18:57:30.900 回答
0

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

于 2015-11-11T04:23:49.587 回答