我在MatLab中创建了一个10 X 10矩阵A。矩阵中的所有值均为0之间和100说我希望:MatLab中的矩阵操作
- 替换< 10的所有元件用零
- 替换A的所有elemtns> 90与无穷大
- 提取所有30到50之间的值赋予一个新的向量。
我可以在不写脚本的情况下做到这一点吗?我可以简单地通过一些简单的for循环脚本来做到这一点,但是有没有可用的快捷键?任何帮助将不胜感激!
我在MatLab中创建了一个10 X 10矩阵A。矩阵中的所有值均为0之间和100说我希望:MatLab中的矩阵操作
我可以在不写脚本的情况下做到这一点吗?我可以简单地通过一些简单的for循环脚本来做到这一点,但是有没有可用的快捷键?任何帮助将不胜感激!
所有这些事情是很容易使用逻辑索引做:
上述各操作可以很容易地使用一个或两个命令来实现。但是每个操作都必须独立于另外两个操作。你不能在一行中完成所有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是
设置任何3×3矩阵a。编写一些命令行语句以在以下各项上执行以下 操作: (a)交换列2和3; (b)添加第四列(0); (c)插入1行作为a的新的第二行(即,向下移动当前的第二行和第三行 ); (d)删除第二栏。
太棒了!非常感谢! – Kristian 2012-04-24 19:47:12