2012-04-24 190 views
0

我在MatLab中创建了一个10 X 10矩阵A。矩阵中的所有值均为0之间和100说我希望:MatLab中的矩阵操作

  1. 替换< 10的所有元件用零
  2. 替换A的所有elemtns> 90与无穷大
  3. 提取所有30到50之间的值赋予一个新的向量。

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

回答

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是

+0

太棒了!非常感谢! – Kristian 2012-04-24 19:47:12

0

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