MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# How can i remove the error "CreateDatabase Error using CreateDatabase (line 22) Not enough input arguments. "

```function T = CreateDatabase(TrainDatabasePath)
% Align a set of face images (the training set T1, T2, ... , TM )
%
% Description: This function reshapes all 2D images of the training database
% into 1D column vectors. Then, it puts these 1D column vectors in a row to
% construct 2D matrix 'T'.
%
%
% Argument:     TrainDatabasePath      - Path of the training database
%
% Returns:      T                      - A 2D matrix, containing all 1D image vectors.
%                                        Suppose all P images in the training database
%                                        have the same size of MxN. So the length of 1D
%                                        column vectors is MN and 'T' will be a MNxP 2D matrix.
%
```
```% Original version by Amir Hossein Omidvarnia, October 2007
%                     Email: aomidvar@ece.ut.ac.ir
```
```%%%%%%%%%%%%%%%%%%%%%%%% File management
TrainFiles = dir(TrainDatabasePath);
Train_Number = 0;
```
```for i = 1:size(TrainFiles,1)
if not(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(TrainFiles(i).name,'Thumbs.db'))
Train_Number = Train_Number + 1; % Number of all images in the training database
end
end
```
```%%%%%%%%%%%%%%%%%%%%%%%% Construction of 2D matrix from 1D image vectors
T = [];
for i = 1 : Train_Number
```
```      % I have chosen the name of each image in databases as a corresponding
% number. However, it is not mandatory!
str = int2str(i);
str = strcat('\',str,'.jpg');
str = strcat(TrainDatabasePath,str);```
```      img = imread(str);
img = rgb2gray(img);```
`      [irow icol] = size(img);`
```      temp = reshape(img',irow*icol,1);   % Reshaping 2D images into 1D image vectors
T = [T temp]; % 'T' grows after each turn
end```

## Products

No products are associated with this question.

Answer by Walter Roberson on 15 May 2013

You need to pass a value in when you run the function. You cannot just run this function by pressing F5 or selecting Run from the menu. You can invoke it from the command line,

`   result = CreateDatabase('C:\myfiles\mydatabase');`

or you can have a call like that in another routine.