J 为8×6的矩阵
b=[];% 存储要删除的行号
% 遍历每一行,记录不满足条件的行号
for i=1:8
if (J(i,1)<-170 || J(i,1)>170 || J(i,2)<-110 || J(i,2)>120 || J(i,3)<-69 || J(i,3)>205 || J(i,4)<-190 || J(i,4)>190 || J(i,5)<-120 || J(i,5)>120 || J(i,6)<-360 || J(i,6)>360)
b=[b i];
continue;
end
end
col=size(J,2);% 获取矩阵的列数
for i=1:length(b)
J(b(i),:)=ones(1,col)*NaN;
end
J(isnan(J))=[];%此处删除完所有NaN后变成一列
J=reshape(J,length(J)/col,col);%再按照固定的列数将其重新排列就可以得到新矩阵
% “最短行程”选取最优解
row=size(J,1);% 获取行数
if row>1
a=[0 0 0 0 -90 0];
b=[];
for i=1:row
b=[b sum(abs(J(i,:)-a))];%计算每行元素绝对值的和,并放到b中
end
J=J(find(min(b)),:);%find(min(b)),即找到b中最小的元素的索引
end
删除指定的行号,参考了如下的代码