MatLab中的矩阵运算

时间:2012-04-24 18:51:41

标签: matlab matrix

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

  1. 替换A<的所有元素。 10用零
  2. 替换A的所有元素> 90无限
  3. 将30到50之间的所有值提取到新矢量。
  4. 我可以不编写脚本吗?我可以通过带有一些简单的for循环的脚本来实现这一点,但有没有可用的快捷方式?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分: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一样是正方形

答案 1 :(得分:0)

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