Mercurial > repos > public > sbplib
annotate isEquidistant.m @ 1126:465fc81e12e8 feature/poroelastic
Copy-paste improved Curve class from feature/laplace_curvilinear_test
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Mon, 13 May 2019 10:18:55 -0700 |
parents | b43c4d841afe |
children |
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 |