从GNU Octave的matrix中移除一列
在GNU八度,我想能够从matrix中删除特定的列。 为了通用性。 我也希望能够从matrix中删除特定的行。
假设我有这个:
mymatrix = eye(5) mymatrix = Diagonal Matrix 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
我想删除第2列和第4列,但是当我删除第2列时,第4列的位置已经移动到第3列,这使我的头部受伤。 一定有更好的方法!
这将做的伎俩:
删除第2和第4 列 :
mymatrix(:,[2,4]) = []
删除行 2和4
mymatrix([2,4],:) = []
如果你不知道列或行的确切数量,你可以使用神奇的“结束”索引,例如:
mymatrix(2:end,:) % all but first row
这也允许您将行或列分割出matrix,而不必将其重新分配给新的variables。
这样做的相反方法:
columns_you_want_to_keep = [1, 3, 5] new_matrix = my_matrix(:,columns_you_want_to_keep)
如何删除八度中的多个列:
如何删除第2和第4列:
columns_to_remove = [2 4]; matrix(:,columns_to_remove)=[]
插图:
mymatrix = eye(5) mymatrix = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 columns_to_remove = [2 4]; mymatrix(:,columns_to_remove)=[] mymatrix = 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1