我有这个矩阵:
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)
不需要循环!
你可以在这里做的是创建一个逻辑向量,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)