相似的第二列元素的行我有這樣的矩陣:如何使用循環來刪除MATLAB
A=[2,2,4;1,2,3;4,5,6;4,5,6;4,5,6;7,8,9]
如何使用一個for循環刪除具有其第二列元素一樣行matlab中的前一行第二列元素?目標是到達:
A=[2,2,4;4,5,6;7,8,9]
相似的第二列元素的行我有這樣的矩陣:如何使用循環來刪除MATLAB
A=[2,2,4;1,2,3;4,5,6;4,5,6;4,5,6;7,8,9]
如何使用一個for循環刪除具有其第二列元素一樣行matlab中的前一行第二列元素?目標是到達:
A=[2,2,4;4,5,6;7,8,9]
我覺得這個示例代碼可以做任務:
A=[2,2,4;1,2,3;4,5,6;4,5,6;4,5,6;7,8,9]
% First row will always be the same of the A matrix
res_mat(1,:) = A(1,:);
row = 2;
for i = 2 : size(A,1)
if A(i,2) ~= A(i-1,2)
res_mat(row,:) = A(i,:);
row = row + 1;
end
end
res_mat
HTH)
無環路的需要!
什麼,你可以在這裏做的是建立一個合理的載體,在那裏是第二列之間的差異的地方true
,並false
其中值等於:
這可以通過使用diff
這樣來實現: diff(A(:,2))~=0
。現在,您還需要包含第一行,因此在該向量的開頭添加一個true
:[true; diff(A(:,2))~=0)]
。使用這個載體,選擇你想要的行,並使用:
,以確保您獲得的所有列:
A=[2,2,4;1,2,3;4,5,6;4,5,6;4,5,6;7,8,9]
B = A([true; diff(A(:,2))~=0],:)
B =
2 2 4
4 5 6
7 8 9
請考慮接受一個答案,如果他們解決你的問題。這是答案左側的複選標記。謝謝! :) –