난 같은 구조 배열 가지고 그것MATLAB에서 구조 배열의 멤버십을 테스트하는 방법은 무엇입니까?
points(1).x = 3
points(1).y = 4.5
points(1).z = 1
...
points(n).x = 2
points(n).y = 23
points(n).z = 4
지금 주어진 세 개의 좌표 (x, y, z), I는하려는 많은 점
points = struct('x',[],'y',[],'z',[])
가 지금 존재하는 경우 이러한 points
을 가리킨다. 따라서 다음과 같은 함수를 정의했습니다 :
function true_or_false = is_in(points, point)
for i = 1:numel(points)
if abs(points(i).x - point.x) < 1e-7 && ...
abs(points(i).y - point.y) < 1e-7 && ...
abs(points(i).z - point.z) < 1e-7
true_or_false = true;
return
end
end
true_or_false = false;
end
문제는 매우 비효율적이라는 것입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 아마도 구조 대신에 뭔가 다른 것을 사용하고 있을까요?
[코드 검토] (http://codereview.stackexchange.com/)를 요청하십니까? –
나는 문제를 해결하기위한 효율적인 대안을 요구하고있다. – IIIaxS