2012-04-24 126 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)刪除第二欄。