time | Calls | line |
---|
| | 177 | function [variables,missingIDs,errorIDs] = readDataFromSheet(sheet,dataRange,varOpts,selectedVarIDs)
|
| | 178 | import matlab.io.spreadsheet.internal.subRange;
|
| | 179 |
|
< 0.001 | 2 | 180 | numVars = numel(selectedVarIDs);
|
< 0.001 | 2 | 181 | variables = cell(1,numVars);
|
| | 182 | % dataRange fails when it has width or height of zero
|
< 0.001 | 2 | 183 | if numVars == 0
|
| | 184 | missingIDs = false(dataRange(3:4));
|
| | 185 | errorIDs = missingIDs;
|
| | 186 | return
|
< 0.001 | 2 | 187 | end
|
| | 188 | % To read data, we want to turn get the two-corner version within the used
|
| | 189 | % range.
|
< 0.001 | 2 | 190 | if any(dataRange(3:4)==0)
|
| | 191 | typeIDs = uint8.empty(dataRange(3:4));
|
| | 192 | errorIDs = false(size(typeIDs));
|
| | 193 | missingIDs = false(size(typeIDs));
|
| | 194 | blankIDs = false(size(typeIDs));
|
< 0.001 | 2 | 195 | else
|
< 0.001 | 2 | 196 | typeIDs = sheet.types(dataRange);
|
< 0.001 | 2 | 197 | blankIDs = (typeIDs(:,selectedVarIDs) == sheet.BLANK)|(typeIDs(:,selectedVarIDs) == sheet.EMPTY);
|
< 0.001 | 2 | 198 | errorIDs = (typeIDs(:,selectedVarIDs) == sheet.ERROR);
|
< 0.001 | 2 | 199 | missingIDs = false(size(errorIDs));
|
< 0.001 | 2 | 200 | end
|
| | 201 |
|
| | 202 |
|
< 0.001 | 2 | 203 | for k = 1:numel(selectedVarIDs)
|
| | 204 | % Get data from the correct column.
|
< 0.001 | 6 | 205 | i = selectedVarIDs(k);
|
< 0.001 | 6 | 206 | varRange = subRange(dataRange,i);
|
0.008 | 6 | 207 | [variables{k},err,placeholder] = matlab.io.spreadsheet.internal.readSpreadsheetVariable(varOpts{i}.Type,varOpts{i},sheet,varRange,typeIDs(:,i));
|
< 0.001 | 6 | 208 | missingIDs(placeholder,k) = true;
|
< 0.001 | 6 | 209 | if strcmp(varOpts{i}.EmptyFieldRule,'error')
|
| | 210 | errorIDs(blankIDs(:,k),k) = true;
|
< 0.001 | 6 | 211 | elseif strcmp(varOpts{i}.EmptyFieldRule,'missing')
|
< 0.001 | 6 | 212 | missingIDs(blankIDs(:,k),k) = true;
|
< 0.001 | 6 | 213 | end
|
< 0.001 | 6 | 214 | err(placeholder) = false;
|
< 0.001 | 6 | 215 | errorIDs(err,k) = true;
|
< 0.001 | 6 | 216 | end
|
< 0.001 | 2 | 217 | end
|
Other subfunctions in this file are not included in this listing.