Mercurial > repos > public > sbplib
annotate isEquidistant.m @ 1215:c7c2cbb465df feature/joingrids
Close branch feature/joingrids
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Wed, 13 Nov 2019 22:13:20 +0000 |
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 |