?? isalmostequal.m
字號:
function same = isAlmostEqual(A, B, reltol)
%isAlmostEqual Equality test using relative tolerance
% same = isAlmostEqual(A, B, reltol), for two floating-point arrays A and B,
% tests A and B for equality using the specified relative tolerance.
% isAlmostEqual returns true if the following relationship is satisfied for
% all values in A and B:
%
% abs(A - B) ./ max(abs(A), abs(B)) <= reltol
%
% same = isAlmostEqual(A, B) uses the following value for the relative
% tolerance:
%
% 100 * max(eps(class(A)), eps(class(B)))
%
% If either A or B is not a floating-point array, then isAlmostEqual returns
% the result of isequal(A, B).
% Steven L. Eddins
% Copyright 2008-2009 The MathWorks, Inc.
if ~isfloat(A) || ~isfloat(B)
same = isequal(A, B);
return
end
if nargin < 3
reltol = 100 * max(eps(class(A)), eps(class(B)));
end
if ~isequal(size(A), size(B))
same = false;
return
end
A = A(:);
B = B(:);
delta = abs(A - B) ./ max(max(abs(A), abs(B)), 1);
% Some floating-point values require special handling.
delta((A == 0) & (B == 0)) = 0;
delta(isnan(A) & isnan(B)) = 0;
delta((A == Inf) & (B == Inf)) = 0;
delta((A == -Inf) & (B == -Inf)) = 0;
same = all(delta <= reltol);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -