MATLAB Answers


classifying data files in a folder with neural network

Asked by John
on 10 Jan 2012

Hi there,

I was hoping somebody could advise me on how to achieve something with neural networks.

I used the neural network pattern recognition tool GUI to create a network for data classification.

I saved the network as net.mat

What I would like to do is, loop through files in the current work folder, which contain normalized inputs and run these through the network. Then save each ouput with same name as the input - so I can identify them at a later stage.

I'm not good coding but I suppose an attempt would be something like this:

files = dir('*.txt');
for k = 1:numel(files)
 output = sim(net, files(k).name)
 %save the output with the same name as input to E:\NNoutput
I would really appreciate any advice

Thank you



Chandra Kurniawan
on 10 Jan 2012

Can you give me one example of the txt file?
I need to know how do you format it.

on 10 Jan 2012


Thanks for replying.

The text files contain column vectors as inputs each one with 30 elements.

I've attached a link to sample in a dropbox. This particular one contains two column vectors, but others would contain more (20-30).

So I was hoping to pass each file containing the column vectors into the neural network to classify the data, as being of type 1,2,3. Then save the output with the same name as the input file.

Does it have to saved as a .mat file of can it be saved as a .txt file?

Many thanks for your help

Please come back to me if I have not explained that well



No products are associated with this question.

1 Answer

Answer by Chandra Kurniawan
on 11 Jan 2012
 Accepted answer


This is the code that I created.

If there is an error, please tell me.

files = dir(fullfile(pwd,'*.txt'));
for k = 1 : numel(files)
    %%%% reading the txt file
    fid01 = fopen(fullfile(pwd,files(k).name));
    idx = 0;    tmparray = []; 
    tline = fgetl(fid01);
    while ischar(tline)
        idx = idx + 1;
        tmparray(idx,:) = str2num(tline);
        tline = fgetl(fid01);
      %%%% simulate net
      output = sim(net, tmparray);   
      %%%% save the output
      filename = strcat(regexprep(files(k).name,'.txt',''),'-output.txt');
      fid02 = fopen(filename,'w');


on 18 Aug 2013


Is the code u post is the complete one? But there's no output came out. Can you email me the full code? I need it emergency.

My email :

Thank you.

on 19 Aug 2013

What type of neural network are u using?

Greg Heath
on 19 Aug 2013

If you only have 3 classes, the size of your output should only have 3 rows. The corresponding training target matrix should have only had columns of the unit matrix eye(3).

 trueclass = vec2ind(target)
 assignedclass = vec2ind(output)
 err = assignedclass ~= trueclass
 Nerr = sum(err)

Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!