annotate isEquidistant.m @ 757:179f234f6cbf feature/d1_staggered

Merge with poroelastic to get blockEvalOn.
author Martin Almquist <malmquist@stanford.edu>
date Sun, 17 Jun 2018 14:44:05 -0700
parents b43c4d841afe
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
487
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 % Tests if consecutive elements of vector v are euidistant
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 function b = isEquidistant(v)
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 if length(v) < 2
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 error('sbplib:isEquidistant:inputTooShort', 'Input vector is too short');
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 end
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 tol = 1e-8;
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 d = v(2:end) - v(1:end-1);
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 err = abs(d - d(1));
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 relErr = err./abs(d);
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 I_zero = find(d < tol);
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 relErr(I_zero) = err(I_zero);
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 b = all(relErr < tol);
b43c4d841afe Add isEquidistant function for testing vectors
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 end