切片操作:MATLAB VS Python
一.MATLAB 矩陣的拆分
1.冒號表達式: t = e1:e2:e3
e1表示初始值,e2為步長,e3為終止值(包括e3),產生一個從e1到e3,步長為e2的行向量
eg: t = 0:1:5
t = 0,1,2,3,4,5
2.矩陣元素按列編號,先第一列,再第二列
3.reshape(A,m,n)
將原矩陣A重新排列成m行n列的新矩陣,注意矩陣元素按列存儲,僅改變其邏輯結構
4.利用冒號表達式獲得子矩陣
(1)A(:,j)表示取A矩陣的第j列全部元素;
A(i,:)表示取A矩陣的第i行全部元素;
A(i,j)表示去A矩陣的第i行第j列元素;
(2)A(i:i+m,:)表示取A矩陣第i~i+m行全部元素;
A(:,k:k+m)表示取A矩陣第k~k+m列全部元素;
A(i:i+m,k:k+m)表示取A矩陣第i~i+m行,並在第k~k+m列的全部元素;
(3)A(:)將矩陣每一列元素堆疊起來,成為一個列向量。如果需要將每行堆疊起來成為一個列向量,則將原矩陣轉置即可。
5.刪除矩陣中某些元素,對其賦值為空即可: A(:,[2 4]) = [ ]
二. Python 列表切片
1.索引
索引數字從左邊開始,第一個是0,然后依次加1;
索引也可從右邊編號,右邊第一個是-1,然后向左依次減1;
序列的切片,一定要左邊的數字小與右邊的數字,即序列號是從小到大;
2.反轉 A[::-1] 和reversed()
alst = [1,2,3,4,5]
alst[::-1] >>>[5,4,3,2,1]
list(reversed(alst)) >>> [5,4,3,2,1]
3.切片
alst[:t] 表示取列表alst的前t個元素,不包括索引t個元素(索引號從0開始);
alst[:2] >>> [1,2]
alst[t:]表示取列表alst從索引t開始,到最后的所有元素,包括索引號為t的元素;
alst[3:] >>> [4,5]
alst[a:b] 表示取列表alst從索引號a開始到索引號b結束的所有元素,包括索引號為a的元素,不包括索引號為b的元素;
alst[2:4] >>>[3,4]
4.對序列的操作
len():返回序列長度
'+' :連接兩個序列
'*':重復序列元素
in: 判斷元素是否存在與序列中,然會Ture / False
max():返回最大值
min():返回最小值
cmp(str1,str2):比較兩個序列值是否相同,用第一個數的ASCII碼減去第二個數的ASCII碼,返回1/0/-1