forked from sfstoolbox/sfs-matlab
-
Notifications
You must be signed in to change notification settings - Fork 0
/
isargsecondarysource.m
62 lines (57 loc) · 3.24 KB
/
isargsecondarysource.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
function isargsecondarysource(varargin)
%ISARGSECONDARYSOURCE tests if the given arg is a matrix containing secondary
% source positions and directions and return an error otherwise
%
% Usage: isargsecondarysource(args)
%
% Input options:
% args - list of args
%
% ISARGSECONDARYSOURCE(args) tests if all given args are a matrix
% containing secondary source positions and directions and returns
% an error otherwise.
%
% See also: isargmatrix
%*****************************************************************************
% The MIT License (MIT) *
% *
% Copyright (c) 2010-2016 SFS Toolbox Developers *
% *
% Permission is hereby granted, free of charge, to any person obtaining a *
% copy of this software and associated documentation files (the "Software"), *
% to deal in the Software without restriction, including without limitation *
% the rights to use, copy, modify, merge, publish, distribute, sublicense, *
% and/or sell copies of the Software, and to permit persons to whom the *
% Software is furnished to do so, subject to the following conditions: *
% *
% The above copyright notice and this permission notice shall be included in *
% all copies or substantial portions of the Software. *
% *
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
% THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *
% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *
% DEALINGS IN THE SOFTWARE. *
% *
% The SFS Toolbox allows to simulate and investigate sound field synthesis *
% methods like wave field synthesis or higher order ambisonics. *
% *
% http:https://sfstoolbox.org [email protected] *
%*****************************************************************************
%% ===== Checking for vector =============================================
for ii = 1:nargin
x0 = varargin{ii};
if ~isnumeric(x0) || ndims(x0)~=2 || size(x0,2)~=7
error(['%s need to be a nx7 matrix containing the ', ...
'secondary sources positions and directions ', ...
'and weights.'], ...
inputname(ii));
end
if ~all(abs(vector_norm(x0(:,4:6),2)-1)<1e-10)
error(['The norm of the direction of %s is not 1. ', ...
'You can use the direction_vector function to get ', ...
'correct direction values.'],inputname(ii));
end
end