Iは12x3
マトリックスた:条件を満たすベクトルと行列の列を比較するにはどうすればよいですか?
point1 = [7.5 4 5
8.5 4 5
9.5 4 5
10.5 4 5
11.5 4 5
7 4 5.5
12 4 5.5
6.5 4 6
12.5 4 6
6 4 6.5
13 4 6.5
5.5 4 7];
次の二つのベクターは、特定の手順の後point1
から得ました。
A1 = [7.5,4,5];
A8 = [6.5,4,6];
point1
におけるそれぞれA1 and A8
の行インデックスはAIdx == 1
とAIdx == 8
あります。
A1 and A8
の両方を比較して、の第6行と同じ列に非整数を持つかどうかを確認してください。
私は、次のコードを試してみました:と私は、これは一部
mod(Point1(AIdx(ii),:),1)
から来ている感じを持っている「インデックスは、行列の次元を超えています。」: AIdx = find(ismember(point1, vertcat(A1, A8), 'rows'));
for ii = 1: numel(AIdx)
% In case where a close point is found, compare if they are both in the same plane
if isequal(mod(point1(AIdx(ii),:),1)~=0, mod(point1(6,:),1)~=0)== true
point1(AIdx(ii),:) = [NaN,NaN,NaN]; %invalidate all AIdx in the same plane as point1
elseif isequal(mod(point1(AIdx(ii),:),1)~=0, mod(point1(6,:),1)~=0)== false
AIdx(ii,:) = [];
end
end
はしかし、私は、エラーメッセージが表示されます
ii = 2 (hence AIdx=8)
には問題があります。あなたはELSEIF部分にAIdx(1,:)
を削除する最初の繰り返しで
:あなたのエラーメッセージについてまず
は、それが動作するようになりました。私は '' elseif ''の後に' Aidx'を削除する必要はなかったと思う。どうもありがとうございます! – User1772