我需要一些帮助来确定如何创建结构点。
我需要两个字段x和y然后我想创建一个计算这两个点之间距离的函数。
我现在拥有的是:
function [ out ] = pointDist3( pointpair1, pointpair2)
%FUNCTION pointDist3 takes in any two pairs of points and
% Calling sequence:
% out = pointDist3(varargin)
%DEFINE VARIABLES
% minargs, maxargs = error checking variables
% pointpair1 = structure containing fields for point 1: x1 and y1
% pointpair2 = structure containing fields for point 2: x2 and y2
% out = structure containing field distance
%CHECK FOR VALID INPUT
if ~isfield(pointpair1,'x', pointpair2, 'x' ) || ~isfield(pointpair1,'y', pointpair2, 'y')
error('Input argument does not contain fields "x" and "y" for both points');
else
out = sqrt((pointpair1.x-pointpair2.x)^2+(pointpair1.y-pointpair2.y)^2);
end
end
答案 0 :(得分:0)
感谢大卫的修复!这是工作版本
function [ out ] = pointDist3( pointpair1, pointpair2)
%FUNCTION pointDist3 takes in any two pairs of points and
% Calling sequence:
% out = pointDist3(varargin)
%DEFINE VARIABLES
% minargs, maxargs = error checking variables
% pointpair1 = structure containing fields for point 1: x1 and y1
% pointpair2 = structure containing fields for point 2: x2 and y2
% out = structure containing field distance
%CHECK FOR VALID INPUT
if ~isfield(pointpair1,'x')|| ~isfield(pointpair2, 'x' ) || ~isfield(pointpair1,'y') || ~isfield(pointpair2, 'y')
error('Input argument does not contain fields "x" and "y" for both points');
else
out = sqrt((pointpair1.x-pointpair2.x)^2+(pointpair1.y-pointpair2.y)^2);
end
end
TESTER:
>> pointA.x = 3
pointA =
x: 3
>> pointA.y =4
pointA =
x: 3
y: 4
>> pointB.x=4
pointB =
x: 4
>> pointB.y=5
pointB =
x: 4
y: 5
>> pointDist3(pointA, pointB)
ans =
1.4142