-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimportindex.m
More file actions
52 lines (44 loc) · 1.66 KB
/
Copy pathimportindex.m
File metadata and controls
52 lines (44 loc) · 1.66 KB
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
function [subject,week,file] = importindex(workbookFile,sheetName,startRow,endRow)
%IMPORTFILE Import data from a spreadsheet
% [subject,week,file] = IMPORTFILE(FILE) reads data from the first
% worksheet in the Microsoft Excel spreadsheet file named FILE and
% returns the data as column vectors.
%
% [subject,week,file] = IMPORTFILE(FILE,SHEET) reads from the specified
% worksheet.
%
% [subject,week,file] = IMPORTFILE(FILE,SHEET,STARTROW,ENDROW) reads from
% the specified worksheet for the specified row interval(s). Specify
% STARTROW and ENDROW as a pair of scalars or vectors of matching size
% for dis-contiguous row intervals. To read to the end of the file
% specify an ENDROW of inf.%
% Example:
% [subject,week,file] = importfile('index.xlsx','Sheet1',2,22);
%
% See also XLSREAD.
% Auto-generated by MATLAB on 2014/07/28 16:12:45
%% Input handling
% If no sheet is specified, read first sheet
if nargin == 1 || isempty(sheetName)
sheetName = 1;
end
% If row start and end points are not specified, define defaults
if nargin <= 3
startRow = 2;
endRow = 22;
end
%% Import the data
[~, ~, raw] = xlsread(workbookFile, sheetName, sprintf('A%d:C%d',startRow(1),endRow(1)));
for block=2:length(startRow)
[~, ~, tmpRawBlock] = xlsread(workbookFile, sheetName, sprintf('A%d:C%d',startRow(block),endRow(block)));
raw = [raw;tmpRawBlock]; %#ok<AGROW>
end
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''};
cellVectors = raw(:,3);
raw = raw(:,[1,2]);
%% Create output variable
data = reshape([raw{:}],size(raw));
%% Allocate imported array to column variable names
subject = data(:,1);
week = data(:,2);
file = cellVectors(:,1);