-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathdeletemode.m
55 lines (49 loc) · 1.65 KB
/
deletemode.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
function deletemode(idelmode)
%
% Name: deletemode
%
% Usage:
%
% Deletes mode # 'idelmode' from all fields in MODES
%
% Version SWD970807
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This matlab source code was originally %
% developed as part of "DIAMOND" at %
% Los Alamos National Laboratory. It may %
% be copied, modified, and distributed in %
% any form, provided: %
% a) This notice accompanies the files and %
% appears near the top of all source %
% code files. %
% b) No payment or commercial services are %
% received in exchange for the code. %
% %
% Original copyright is reserved by the %
% Regents of the University of California, %
% in addition to Scott W. Doebling, Phillip %
% J. Cornwell, Erik G. Straser, and Charles %
% R. Farrar. %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global MODES
fnames = fieldnames(MODES);
nmodes = MODES.nmodes;
for ifield = 1:length(fnames), % Loop over all the fields in MODES
% If this field is a cell array of length nmodes, remove idelmode'th component
temp = getfield(MODES,fnames{ifield});
if iscell(temp) & length(temp) == nmodes,
iassign = [1:idelmode-1,idelmode+1:nmodes];
clear temp2
if length(iassign) > 0,
for ia = 1:length(iassign);
temp2{ia} = temp{iassign(ia)};
end
else
temp2 = {};
end
eval(['MODES.',fnames{ifield},' = temp2;']);
end
end
MODES.nmodes = nmodes - 1;
return