如何使用for循环删除matlab中类似第二列元素的行

0 matlab for-loop matrix

我有这个矩阵:

A=[2,2,4;1,2,3;4,5,6;4,5,6;4,5,6;7,8,9]
Run Code Online (Sandbox Code Playgroud)

如何使用for循环删除第二列元素与matlab中第二行第二列元素相同的行?目标是达到:

A=[2,2,4;4,5,6;7,8,9]
Run Code Online (Sandbox Code Playgroud)

Ste*_*fin 5

不需要循环!

你可以在这里做的是创建一个逻辑向量,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
Run Code Online (Sandbox Code Playgroud)