Skip to content

Commit cef8c62

Browse files
committed
Merge branch 'validPSM'
2 parents b7b58e3 + b5b31c1 commit cef8c62

File tree

194 files changed

+13385
-12981
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

194 files changed

+13385
-12981
lines changed

.gitattributes

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
*.mlx -crlf -diff -merge
2-
*.mat -crlf -diff -merge
3-
*.fig -crlf -diff -merge
4-
*.p -crlf -diff -merge
5-
*.slx -crlf -diff -merge
6-
*.mdl -crlf -diff -merge
7-
*.mdlp -crlf -diff -merge
8-
*.slxp -crlf -diff -merge
9-
*.sldd -crlf -diff -merge
10-
*.mexa64 -crlf -diff -merge
11-
*.mexw64 -crlf -diff -merge
12-
*.mexmaci64 -crlf -diff -merge
13-
*.xlsx -crlf -diff -merge
14-
*.docx -crlf -diff -merge
15-
*.pdf -crlf -diff -merge
16-
*.jpg -crlf -diff -merge
1+
*.mlx -crlf -diff -merge
2+
*.mat -crlf -diff -merge
3+
*.fig -crlf -diff -merge
4+
*.p -crlf -diff -merge
5+
*.slx -crlf -diff -merge
6+
*.mdl -crlf -diff -merge
7+
*.mdlp -crlf -diff -merge
8+
*.slxp -crlf -diff -merge
9+
*.sldd -crlf -diff -merge
10+
*.mexa64 -crlf -diff -merge
11+
*.mexw64 -crlf -diff -merge
12+
*.mexmaci64 -crlf -diff -merge
13+
*.xlsx -crlf -diff -merge
14+
*.docx -crlf -diff -merge
15+
*.pdf -crlf -diff -merge
16+
*.jpg -crlf -diff -merge
1717
*.png -crlf -diff -merge

1. Grid files/@gridData/char2dims.m

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
function[dims] = char2dims( dimChar )
2-
% Converts a comma delimited character array of dimension names to string
3-
dims = "";
4-
if ~isempty(dimChar)
5-
comma = strfind(dimChar, ',');
6-
nDims = numel(comma) + 1;
7-
dims = cell(1, nDims);
8-
9-
start = [1, comma+1];
10-
stop = [comma-1, numel(dimChar)];
11-
12-
for d = 1:nDims
13-
dims{d} = dimChar( start(d):stop(d) );
14-
end
15-
16-
dims = string( dims );
17-
end
18-
1+
function[dims] = char2dims( dimChar )
2+
% Converts a comma delimited character array of dimension names to string
3+
dims = "";
4+
if ~isempty(dimChar)
5+
comma = strfind(dimChar, ',');
6+
nDims = numel(comma) + 1;
7+
dims = cell(1, nDims);
8+
9+
start = [1, comma+1];
10+
stop = [comma-1, numel(dimChar)];
11+
12+
for d = 1:nDims
13+
dims{d} = dimChar( start(d):stop(d) );
14+
end
15+
16+
dims = string( dims );
17+
end
18+
1919
end

1. Grid files/@gridData/dims2char.m

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
function[dimChar] = dims2char( dims )
2-
% Converts a string array of dimension names to a comma delimited char
3-
dimChar = '';
4-
if ~isempty(dims)
5-
dimChar = char(dims(1));
6-
for k = 2:numel(dims)
7-
dimChar = [dimChar,',',char(dims(k))]; %#ok<AGROW>
8-
end
9-
end
1+
function[dimChar] = dims2char( dims )
2+
% Converts a string array of dimension names to a comma delimited char
3+
dimChar = '';
4+
if ~isempty(dims)
5+
dimChar = char(dims(1));
6+
for k = 2:numel(dims)
7+
dimChar = [dimChar,',',char(dims(k))]; %#ok<AGROW>
8+
end
9+
end
1010
end

1. Grid files/@gridData/fullSize.m

+23-23
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
function[siz] = fullSize( siz, d )
2-
%% This gets the size of an array through a minumum number of dimensions.
3-
%
4-
% siz = fullSize( siz, d )
5-
% Pads a size vector with trailing singletons through a minimum of d dimensions.
6-
%
7-
% ----- Inputs -----
8-
%
9-
% siz: A size vector
10-
%
11-
% d: The minimum number of dimensions.
12-
%
13-
% ----- Outputs -----
14-
%
15-
% siz: The size of the array.
16-
17-
% ----- Written By -----
18-
% Jonathan King, University of Arizona, 2019
19-
20-
% Get the size
21-
nDim = numel(siz);
22-
siz(nDim+1:d) = 1;
23-
1+
function[siz] = fullSize( siz, d )
2+
%% This gets the size of an array through a minumum number of dimensions.
3+
%
4+
% siz = fullSize( siz, d )
5+
% Pads a size vector with trailing singletons through a minimum of d dimensions.
6+
%
7+
% ----- Inputs -----
8+
%
9+
% siz: A size vector
10+
%
11+
% d: The minimum number of dimensions.
12+
%
13+
% ----- Outputs -----
14+
%
15+
% siz: The size of the array.
16+
17+
% ----- Written By -----
18+
% Jonathan King, University of Arizona, 2019
19+
20+
% Get the size
21+
nDim = numel(siz);
22+
siz(nDim+1:d) = 1;
23+
2424
end

1. Grid files/@gridData/gridData.m

+48-48
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,49 @@
1-
classdef (Abstract) gridData
2-
% Defines an interface for data structures that are placed in a
3-
% gridFile container object.
4-
5-
properties
6-
dimOrder; % The order of dimensions in the gridded dataset
7-
size; % The size of the gridded dataset
8-
mergeSet; % Maps the merged dimensions back onto unmerged dimensions
9-
unmergedSize; % Size without any squashed dimensions
10-
merge; % Indicates which dimensions should be merged
11-
end
12-
13-
% Interface methods
14-
methods (Abstract = true)
15-
% Reads data from the data structure
16-
[X] = read( obj, scs );
17-
end
18-
19-
% Static Utilities
20-
methods (Static)
21-
% Removes trailing singletons from a size vector
22-
siz = squeezeSize( siz );
23-
24-
% Returns a list of numeric types
25-
[types] = numericTypes
26-
27-
% Get the size up to n dimensions
28-
[siz] = fullSize( siz, d )
29-
30-
% Initial processing of merged dimensions
31-
[umSize, mSize, uniqDim, merge, mergeSet] = processSourceDims( dimOrder, iSize )
32-
33-
% Actually merge data dimension
34-
[X] = mergeDims( X, merge )
35-
36-
% Convert string array of dimensions to comma delimited char
37-
dimChar = dims2char( dims );
38-
39-
% Convert comma delimietd char to string array of dimensions
40-
dims = char2dims( dimChar );
41-
end
42-
43-
methods
44-
% Adjust SCS and keep for merged
45-
[fullSCS, keep] = unmergeSCS( obj, scs )
46-
end
47-
48-
end
1+
classdef (Abstract) gridData
2+
% Defines an interface for data structures that are placed in a
3+
% gridFile container object.
4+
5+
properties
6+
dimOrder; % The order of dimensions in the gridded dataset
7+
size; % The size of the gridded dataset
8+
mergeSet; % Maps the merged dimensions back onto unmerged dimensions
9+
unmergedSize; % Size without any squashed dimensions
10+
merge; % Indicates which dimensions should be merged
11+
end
12+
13+
% Interface methods
14+
methods (Abstract = true)
15+
% Reads data from the data structure
16+
[X] = read( obj, scs );
17+
end
18+
19+
% Static Utilities
20+
methods (Static)
21+
% Removes trailing singletons from a size vector
22+
siz = squeezeSize( siz );
23+
24+
% Returns a list of numeric types
25+
[types] = numericTypes
26+
27+
% Get the size up to n dimensions
28+
[siz] = fullSize( siz, d )
29+
30+
% Initial processing of merged dimensions
31+
[umSize, mSize, uniqDim, merge, mergeSet] = processSourceDims( dimOrder, iSize )
32+
33+
% Actually merge data dimension
34+
[X] = mergeDims( X, merge )
35+
36+
% Convert string array of dimensions to comma delimited char
37+
dimChar = dims2char( dims );
38+
39+
% Convert comma delimietd char to string array of dimensions
40+
dims = char2dims( dimChar );
41+
end
42+
43+
methods
44+
% Adjust SCS and keep for merged
45+
[fullSCS, keep] = unmergeSCS( obj, scs )
46+
end
47+
48+
end
4949

1. Grid files/@gridData/mergeDims.m

+28-28
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
1-
function[X] = mergeDims( X, merge )
2-
3-
% For each set of merged dimension
4-
mergeSet = unique( merge(~isnan(merge)) );
5-
dimIndex = 1:numel(merge);
6-
for m = 1:numel(mergeSet)
7-
8-
% Get the dimensions being merged and permute to front
9-
dims = ( mergeSet(m) == merge );
10-
permOrder = [dimIndex(dims), dimIndex(~dims)];
11-
X = permute( X, permOrder );
12-
13-
% Reshape the merged dims. Replace secondary dimensions with singletons
14-
% to preserve dimension order
15-
siz = size(X);
16-
nMerge = sum(dims);
17-
X = reshape( X, [prod(siz(1:nMerge)), ones(1,nMerge-1), siz(nMerge+1:end)] );
18-
19-
% Unpermute
20-
[~, unorder] = sort( permOrder );
21-
X = permute( X, unorder );
22-
end
23-
24-
% Remove the merged singletons
25-
X = squeeze(X);
26-
27-
end
28-
1+
function[X] = mergeDims( X, merge )
2+
3+
% For each set of merged dimension
4+
mergeSet = unique( merge(~isnan(merge)) );
5+
dimIndex = 1:numel(merge);
6+
for m = 1:numel(mergeSet)
7+
8+
% Get the dimensions being merged and permute to front
9+
dims = ( mergeSet(m) == merge );
10+
permOrder = [dimIndex(dims), dimIndex(~dims)];
11+
X = permute( X, permOrder );
12+
13+
% Reshape the merged dims. Replace secondary dimensions with singletons
14+
% to preserve dimension order
15+
siz = size(X);
16+
nMerge = sum(dims);
17+
X = reshape( X, [prod(siz(1:nMerge)), ones(1,nMerge-1), siz(nMerge+1:end)] );
18+
19+
% Unpermute
20+
[~, unorder] = sort( permOrder );
21+
X = permute( X, unorder );
22+
end
23+
24+
% Remove the merged singletons
25+
X = squeeze(X);
26+
27+
end
28+
2929

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
function[types] = numericTypes
2-
% Returns a list of matlab numeric types.
3-
4-
types = ["single";"double";"int8";"uint8";"int16";"uint16";"int32";"uint32";...
5-
"int64";"uint64"];
6-
1+
function[types] = numericTypes
2+
% Returns a list of matlab numeric types.
3+
4+
types = ["single";"double";"int8";"uint8";"int16";"uint16";"int32";"uint32";...
5+
"int64";"uint64"];
6+
77
end

0 commit comments

Comments
 (0)