function [trainingSampleInfo, classifySampleSize, preDefInputVal] = InputInfo(samples, preDefInputVal)
minNumVar = 2; % At least two dimensions are required
minNumGrp = 2; % At least two groups are required
trainingSampleInfo.numGrp = 0;
trainingSampleInfo.numVar = 0;
trainingSampleInfo.numElemPerGrp = 0;
classifySampleSize = 0;
Quest={'Number of Groups (2..)', 'Number of Variables (2..)'};
Title=sprintf('Input information for %s data import',samples{1});
numLines=[1 ; 1];
preDefVal={preDefInputVal.numGrp, preDefInputVal.numVar};
numVar = 0;
while (numVar < minNumVar) || (numGrp < minNumGrp)
inputValue = inputdlg(Quest, Title, numLines, preDefVal);
if ~isempty(inputValue)
numGrp = str2num(inputValue{1});
if isempty(numGrp)
warndlg('No valid number of Groups inputted','ATTENTION')
return
else
preDefInputVal.numGrp = int2str(numGrp);
end
numVar = str2num(inputValue{2});
if isempty(numVar)
warndlg('No valid number of Variables inputted','ATTENTION')
return
else
preDefInputVal.numVar = int2str(numVar);
end
else
warndlg('No valid data info inputted','ATTENTION')
return
end
end
numDifGrp = 0;
EqNumElemPerGrp=questdlg('Is the number of observations the same for all groups?', Title, 'Yes', 'No', 'Yes');
switch EqNumElemPerGrp
case 'Yes'
numDifGrp = 1;
case 'No'
numDifGrp = numGrp;
otherwise
warndlg('No option selected', 'ATTENTION')
end
numElemPerGrp = zeros(1, numDifGrp);
numElemPerGrp_temp = [];
[nrows, dummy] = size(preDefInputVal.numElemPerGrp);
for i = 1:numDifGrp
if numDifGrp ~= 1
Quest = {['Number of Observations in Group ', num2str(i)]};
else
Quest = {'Number of Observations in the Groups'};
end
Title = 'Please input the number of Observations per Group';
numLines = 1;
if i <= nrows
preDefVal = {preDefInputVal.numElemPerGrp(i,:)};
else
preDefVal = {preDefInputVal.numElemPerGrp(end,:)};
end
inputValue = inputdlg(Quest, Title, numLines, preDefVal);
if ~isempty(inputValue)
if isempty(str2num(inputValue{1}))
warndlg('No valid number of Observations Per Group inputted', 'ATTENTION')
return
else
numElemPerGrp(i) = str2num(inputValue{1});
numElemPerGrp_temp = strvcat(numElemPerGrp_temp, int2str(numElemPerGrp(i)));
end
else
warndlg('No data info inputted', 'ATTENTION')
return
end
end
preDefInputVal.numElemPerGrp = numElemPerGrp_temp;
if numDifGrp == 1
numElemPerGrp = numElemPerGrp(1) * ones(1, numGrp);
end
trainingSampleInfo.numGrp = numGrp;
trainingSampleInfo.numVar = numVar;
trainingSampleInfo.numElemPerGrp = numElemPerGrp;
if ~strcmp(samples{2}, '')
Quest = {'Number of observations in Classify Sample'};
Title = sprintf('Input information for %s data import', samples{2});
numLines = 1;
preDefVal = {preDefInputVal.classifySampleSize};
inputValue = inputdlg(Quest, Title, numLines, preDefVal);
if ~isempty(inputValue)
classifySampleSize=str2num(inputValue{1});
if isempty(classifySampleSize)
warndlg('No valid number of Observations in Classify Sample inputted', 'ATTENTION')
return
else
preDefInputVal.classifySampleSize = int2str(classifySampleSize);
end
else
warndlg('No data info inputted', 'ATTENTION')
return
end
end