HANDWRITTEN DIGIT RECOGNITION

jamaicacooperativeAI and Robotics

Oct 17, 2013 (3 years and 7 months ago)

78 views

1











HANDWRITTEN DIGIT RECOGNITION


USING COMMON VECTOR APPROACH

by

152120061024

ERSİN ENES ERYILMAZ


An Engineering Synthesis and Design Project Report

Computer Engineering Department

June, 2011




2



HANDWRITTEN DIGIT RECOGNITION

USING COMMON VECTOR
APPROACH


by

152120061024

ERSİN ENES ERYILMAZ








A Report Presented in Partial Fulfillment of


The Requirements for the Degree


Bachelor of Science in Computer Engineering










ESKISEHIR OSMANGAZI UNIVERSITY


June, 2011




3




HANDWRITTEN DIGIT
RECOGNITION

USING COMMON VECTOR APPROACH

b
y

152120061024

ERSİN ENES ERYILMAZ




Has been approved


June, 2011


APPROVED


_________________________________________

Prof. Dr
.
M. Bilginer GÜLMEZOĞLU

Supervisory









4





ABSTRACT


In this project, it was worked on handwritten digit recognition using common vector
approach (CVA).
In
experimental study
,

v
ectors
have been used which w
ere

become from

matri
x

that

was obtained from digits. Firstly, the database that used in this project w
as got
from U
niversity of California, Irvine, UCI

(
Machine Learning Repository).

Original name of
data
base

is known “Semeion Handwritten Digit”.
There have been
were used
1593 digits

and
155 vectors
of with
256 dimensions

for each digits

from

database
, this condition
was known
as

insufficient datacase in CVA. In the classification process, ’’leave
-
ten
-
out’’ strategy was
used. Therefore the eigenvectors and common vectors were found for 145 vectors for each of
10 classes in the training process of CVA f
or each step of ’’leave
-
ten
-
out’’ strategy. In the
testing process, remaining 10 vectors were tested by using Euclidean distance as decision
criterion.






ÖZET


Bu

projede, ortak vektör yaklaşım
kullanılarak el yazısı ile yazılmış rakamları tanıma
üzerine çalışılmıştır. Deneysel çalışma
lar
da rakamlardan elde edilen matris
lerden oluşturulan

vektörler kullanılmıştır. Bu projede kullanılan veritabanı
,

Kaliforniya Üniversitesi, Irvine
,
(UCI)’de
n
(
Makine Öğrenme De
posu) temin edilmiştir. Bu veritabanın

o
rijinal ismi “Semeion
Handwritten Digit” ol
arak bilinmektedir. Veritabanından
1593 rakam
ve her rakam için 256
boyutlu 155 vektör kullanılmıştır. Bu durum,

ortak vektör yaklaşımında yetersiz veri
durumu
na karşılık gelmektedir
. Sınıflandırma
sürecinde “onun
u dışarıda bırak
” yöntemi
kullanılmıştır. CVA uygulamasının eğitim aşamasında her bir sınıftan eğitim için ayrılan 145
adet vektör için,

özvektörler ve ortak vektör bulunmuştur
. Test aşamasında ise her bir sınıf
içi
n geri kalan 10 vektörün testi Ö
klid mesa
fesi kullanılarak gerçekleştirilmiştir.

5





















ACKNOWLED
GEMENT


I would like to thank Assoc. Dr. Semih E
RGİN

for his continuous support, and my
thesis supervisor, Prof. Dr. M. Bilginer GÜLMEZOĞLU for sharing his valuable experience
and wisdom.



Thank you Nihat

for being my team friend and for
the
comfort and support.


6


















CONTENTS


ABSTRACT/ÖZET

................................
................................
................................
.............

4


ACKNOWLEDGEMENT

................................
................................
................................
...

5

1

INTRODUCTION

................................
................................
................................
...............

7

1.1

Importance of the Handwritten Digit Recognition

................................
.......................

7

1.2

Various Approaches to Handwritten Digit Recognition

................................
..............

8

2

DATABASE

................................
................................
................................
......................

10

3

COMMON VECTOR APPROACH

................................
................................
.................

12

4

EXPERIMENTAL STUDY

................................
................................
..............................

14

4.1

Database Used In This Study

................................
................................
.....................

14

4.2

Results

................................
................................
................................
........................

15

4.2.1

Results Obtained From Training Set
................................
................................
...

17

4.2.2

Results Obtained From Testing Set

................................
................................
....

19

5

DISCUSSION AND CONCLUSIONS

................................
................................
.............

22

6

REFERENCES

................................
................................
................................
..................

23

7

APPENDIX

................................
................................
................................
........................

24














7



CHAPTER 1




1.1

Importance of the Handwritten Digit Recognition


With Artificial Science

(A.S)

we mean those sciences for which the comprehension of
the natural and /or cultural processes is obtained through the re
-
creation of those same
processes through automatic models.


In the A.S. the computer is what the handwriting is for the natural langua
ge: the A.S
are made of formal algebras for the generation of artificial models (structures and processes),
in the same way in which the natural languages are constituted by a semantics, a syntax and a
pragmatics
for the generation of the texts.


Handwriti
ng recognition is the ability of a computer to receive and interpret
intelligible handwritten input from sources such as paper documents, photographs, touch
-
screens and other devices. The image of the written text may be sensed "off line" from a piece
of p
aper by optical scanning (optical character recognition) or intelligent word recognition.
Alternatively, the movements of the pen tip may be sensed "on line", for example by a pen
-
based computer screen surface.


Handwriting recognition principally entails
optical character recognition. However, a
complete handwriting recognition system also handles formatting, performs correct
segmentation into characters and finds the most plausible words

[1]
.


Hand
written digit recognition is a syst
em widely used in the
United St
ates. This
system is developed for zip code or postal code recognition that can be employed in mail
sorting. This can help humans to sort mails with postal codes that are difficult to identify.


For more than thirty years, researchers have been wo
rking on handwriting recognition.
Over the past few years, the number of companies involved in research on handwriting
recognition has continually increased. The advanced of handwriting processing results from a
combination of various kinds of information,

and new technologies such as high quality high
speed scanners and a
cheaper

and more powerful CPUs

[1]
.

1

INTRODUCTION

8



Some handwriting recognition system allows us to input our handwriting into system.
This can be done either by controlling a mouse or using a third
-
pa
rty drawing tablet. The
input can be converted into typed text or can be left as an “ink object” in our own handwriting

We can also enter the text we would like the system to recognize into any Microsoft Office
program file by typing. We can do this by typ
ing 1s and 0s. This works as Boolean variable

[1]
.


Handwriting recognition is not new technology, but it has not gained public attention
until recently. The ultimate goal of designing a handwriting recognition system with an
accuracy rate of 100% is quite

illusionary, because even human beings are not able to
recognize every handwritten digit without any doubt. For example, most people cannot even
read their own notes. Therefore there is an obligation for writer to write clearly

[1]
.


In this thesis,
Commo
n Vector Approach

will be
used for h
andwritten digit
recognition
. The advantages of using
CVA

to recognize handwritten digits will be listed
.

1.2

Various Approaches to Handwritten Digit Recognition


Handwriting recognition has always been a challenging task in

pattern recognition.
Many systems and classification algorithms have been proposed in the

past years. Techniques
ranging from statistical methods such as PCA and

Fisher discriminant analysis [2
] to machine
learning like neural networks [3] or support vect
or machines [4
] have been applied to solve
this problem. But since handwriting depends much on the writer and because we do not
always write the same character in exactly the same way, building a general recognition
system that would recognize any characte
r with good reliability in every application is not
possible. Typically, the recognition systems are
tailored to specifi
c applications to achieve
better performances. In particular, unconstrained handwritten digit recognition has been
applied to recognize
amounts written on checks for banks or zip codes on envelopes for postal
services (the USPS database). In these two cases, good results were obtained. An
unconstrained handwritten digit recognition system can be divided into several stages:
preprocessing (
filtering, segmentation, normalization, thinning...), feature extraction (and
selection), classification and verification. This paper focuses on featur
e extraction and
classification


Postal companies have a vested interest in recognizing handwritten char
acters to
automate address reading and mail routing. The National Institute for Standards and
Technology (NIST) has amassed a large database of digits which is freely available, and has
become somewhat of a benchmark for testing classification algorithms.
The MNIST database
9


is a modified set compiled from several NIST databases. It consists of 60,000 training
examples and 10,000 test samples, each

of which is a 28 x 28 pixel gra
y

scale image

[
5
].


Hand
-
written address interpretation (HWAI) technology has
been recently
incorporated into the processing of letter mail by the US Postal Service. The Remote Bar
Coding System, which is an image management system for assigning bar codes to mail that
has not been fully processed by postal OCR equipment, has been re
trofitted with a Remote
Computer Reader (RCR), into which the HWAI technology is integrated. A description of the
HWAI technology, including its algorithms for the control structure, recognizers and
databases, is provided. Its performance on more than a mi
llion hand
-
written mail
-
pieces in a
field deployment of the integrated RCR
-
HWAI system is indicated. Future enhancements for
a nationwide deployment of the system are indicated

[
6
]
.


Handwriting has continued to persist as a means of communication and reco
rding
information in day
-
to
-
day life even with the introduction of new technologies. Given its
ubiquity in human transactions, machine recognition of handwriting has practical
significance, as in reading handwritten notes in a PDA, in postal addresses on e
nvelopes, in
amounts in bank checks, in handwritten fields in forms, etc. This overview describes the
nature of handwritten language, how it is transduced into electronic data, and the basic
concepts behind written language recognition algorithms. Both the

online case (which
pertains to the availability of trajectory data during writing) and the off
-
line case (which
pertains to scanned images) are considered. Algorithms for preprocessing, character and word
recognition, and performance with practical system
s are indicated. Other fields of application,
like signature verific
ation, writer authentification,
and handwriting

learning tools are also
considered

[
7
]
.


I used

the
Common Vector Approach (CVA)

to recognize
Semeion
handwritten digit
s
.
CVA is a well known subspace
-
based pattern recognition method that is widely used in
speech recognition, speaker recognition and image recognition
[
10
].

In this method, a
common vector for each class is calculated using feature vectors in the training set
of th
at

class. This common vector is unique and repre
sents the common properties of that

class. In
this
study
, CVA is proposed to use for
handwritten digit recognition.
In
the
experimental
study
,

10

classes (
0
-
9 digits
) were classified using CVA and
appreciably high correct
classification rates were obtained.



10


CHAPTER 2





Title:

Semeion Handwritten Digit

Figure 2.1 shows th
e

Semeion Handwritten digits dataset specification.




Figure 2.1 Semeion Handwritten digits dataset
specification


Source:

The dataset was created by Tactile Srl, Brescia, Italy (http://www.tattile.it/) and donated in
1994 to Semeion Research Center of Sciences of Communication, Rome, Italy
(http://www.semeion.it/), for machine learning research.

For any

questions, e
-
mail Massimo
Buscema (m.buscema '@' semeion.it) or Stefano Terzi (s.terzi '@' semeion.it)

[
8
]



Data Set Information:

1593 handwritten digits from around 80 persons were scanned, stretched in a rectangular box
16x16 in a gray scale of 256 val
ues. Then each pixel of each image was scaled into a boolean
(1/0) value using a fixed threshold.

Each person wrote all the digits from 0 to 9, twice

on a paper
. The commitment was to write
the digit the first time in the normal way (trying to write each d
igit accurately) and the second
time in a fast way (with no accuracy).

2

DATABASE

11


The best validation protocol for this dataset seems to be a 5x2CV, 50% Tune (Train +Test)
and complet
e
ly blind 50% Validation.



Attribute Information:

This dataset consists of 1593
records (rows) and 256 attributes (columns).

Each record represents a handwritten digit, or
i
ginally scanned with a re
solution of 256 grays
scale
.

Each pixel of the each original scanned image was first stretched, and after scaled between 0
and 1 (setting t
o 0 every pixel whose value was
under the

value 127 of the grey scale (127
included) and setting to 1 each pixel whose ori
gi
nal value in the grey scale was over 127).

Finally, each binary image was scaled again into a 16x16 square box (the final 256 binary

attributes).












12


CHAPTER 3





The Common Vector Approach (CVA) is a well known subspace
-
based pattern
recognition method that is widely used in speech recognition, speaker recognition and image
recognition
[9
]
. In the CVA method, a common vector that represents the common properties
or invariant features of
any

class is calculated. CVA is applied to each class separately

by

considering the within
-
class scatter of the data only
[1
0
,

1
1
]
.

In this
chapter,

CVA is

analyzed

in three parts: Training Phase, Test Phase and Decision Criterion


Let the vectors
a
1
,
a
2
, ...,
a
m

Є
R
n

be the feature vectors for a
digit
-
class C in the training set
where
m


n
. Then each of these feature vectors which are assumed to be linearly independent
can be written as
[
1
2
]




for i
=1,2, …,
m


where
the vector
a
i,dif

indicates the differences resulted from
personal differences (writing
style, spread of writing etc.) as well as pen/pencil

and

paper differences

the vector
a
com

is the
common vector of the
digit
-
class C, and ε
i

represents the error vector
[12]
.






The Covariance Matrix



In the training phase, the common vector
is
obtained from the subspace method. Let us
define the covariance matrix of the feature vectors belonging to a
digit
-
class
as






3

COMMON VECTOR APPROACH

13


where

is the average feature vector of a class whose
covariance matrix is to be calculated

[1
2
]
.


The eigenvalues of the covariance matrix
Ф

are non
-
negative and they can be written in
decreasing order:

Let
u
1
,
u
2
,.
.
.
u
n


be the orthonormal eigenvectors
corresponding to these eigenvalues. The first (
m
-
1) eigenvectors of the covariance matrix
corresponding to the nonzero eigenvalues form an orthonormal basis for the difference
subspace
B
.

The orthogonal complement,
B

,
is spanned by all the eigenvectors corresponding
to the zero eigenvalues. This subspa
ce is called the indifference subspace and has a dimension
of (
n
-
m
+1). The direct sum of two subspaces
B
and
B

is the whole space, and the intersection
of them is the null space. The common vector can be
written

as the linear combination of the
eigenvecto
rs corresponding to the zero eigenvalues of
Ф
, that is,








i
=1, 2,
m





From here, the common vector
a
com

is the projection of any feature vector onto the
indifference subspace
B


[1
2
]
.


During classification, the following decision criterion is used:








Where
is
an unknown test vector and S is indicates the

total

number of classes. If the
distance is minimum for any class C, the feature vector
is assigned to class C

[1
2
]
.

14




CHAPTER 4



4.1

Database Used In This Study


Semeion
Handwritten Digit Dataset

includes

1593 records each of them has 155
vector,
Dataset

consists of 0
-
9 digits, each of them occurs
in
16x16 matrix. Each matrix (256
samples) only includes 0/1 Boolean values. We can see
16
x16 matrix display of

0’s

and 1’s

in
Figure
4.
1.
1

for digit “0”

and Figure 4.1
.
2

for digit “1”, respectively
. Also there can be seen
image
s

of
0’s and 1’s
in
Figure 4.1.3 and
in
Figure 4.1.4

respectively
.


Fig

4.
1.
1
-

0
’s 16x16 matrix display


Fig 4.1.2
-
1
’s 16x16 matrix display

4

EXPERIMENTAL STUDY

15




Figure 4.1.3
-
Image of 0


Figure 4.1.4
-

Image of 1



[Appendix 1
].







4.2

Results

Algorithm of process



1.

D
ivision of data
:

Table 4.2.1 shows the

d
ivision of data
according to vectors [Appendix 2
].





semeion.names
folder

consists of values (0
-
1), and separates all digits (0
-
9)

into
different

samples.






File was opened and digits were separated






Class 1
-
10

(0
-
9

digits
):

Each class has
256x1
vector
s.


16


Class

Data

Vector


C
lass
1

(1001.m
-

1155
.m)

161
Vector


C
lass
2


(2001.m
-

2155
.m)

162
Vector


C
lass 3

(3001.m
-

3155
.m)

159
Vector


C
lass

4


(4001.m
-

4155
.m)

159
Vector


C
lass
5


(5001.m
-

5155
.m)

161
Vector


Class

6


(6001.m
-

6155
.m)

159
Vector


Class

7

(7001.m
-

7155
.m)

161
Vector


Class

8

(8001.m
-

8155
.m)

158
Vector


Class

9

(9001.m
-

9155
.m)

155
Vector


Class

10

(10001.m
-

10155
.m)

158
Vector



Table 4.2.
1
Relations b
etween
the
class
es
, data, and

number of

vector
s














2.

Table 4.2.2 shows

the

digit
s
,
total number
of vectors
and,
number of vector
used
in this
study
for every class:


Digit

Class

Total Vector Number

Used Vector
Number

0

1

161

155

1

2

162

155

2

3

159

155

3

4

159

155

4

5

161

155

5

6

159

155

6

7

161

155

7

8

158

155

8

9

155

155

9

10

158

155


Table 4.2.
2

Relation b
etween
the
digit
s
,
class
es
,

total number

of vectors
, and

number of vectors
used

in this study




17


3.

Training process


3.1
Eigenvectors


CVA has two different data cases; they are sufficient and insufficient
datacases. If vector number (m) is smaller than vector dimension (n), this situations
corresponds to insufficient datacase. My database has



m=145 training (vector), n=256 (dimension)



S
o, m < n insufficient datacase



k = n
-
m+1=112 zero eigenvalues for
each
iteration

[Appendix 3].

3.2
Common vector calculation


The common vector
a
com


which
is the projection of any feature vector onto the
indifference subspace
B

is calculated
.



4.

Testing process


During
the testing process,

the leave
-
1
0
-
out


strategy was us
ed

[Appendix 4]
.
According to this strategy 1
0 vectors for each class were selected for testing. Then, the
algorithm is trained on the remaining 14
5

vectors for each cla
ss. So, the training and
testing procedure were iterated
15

times until each set for each class is used for testing
once. Then, we took the projections of t
he test vectors onto the
eigenvectors

corresponding to zero eigenvalues

obtained for each class. So,

we obtained the remaining
vector for each class. Then we calculated the distance between the remaining vector and
the common vector. All of these processes were
realized

for each step
of

leave
-
1
0
-
out


strategy

[Appendix 5]
,

[Appendix 6].



4.2.1

Results
Obtained From Training Set




1
1
2
(
=256
-
145+1)

zero eigenvalue
s were obtained for each class with dimension of
256

x
1
.

Table
4.2.
1
.
1 shows the

correct

recognition rates

and
Figure

4.
2
.
1
.1
shows
the illustrations
of recognition rates obtained from the training set.


[Appendix 7
].


[Appendix
8
].



18



Test


Intervals


Classes


1_10


11_20


21_30

31_40

41_50

51_60

61_70

71_80

1

95,86

93,79

95,17

97,93

97,24

95,8
7

97,24

99,31

2

100

100

100

100

100

100

100

100

3

100

100

100

100

100

100

100

100

4

100

99,31

100

100

100

100

100

100

5

100

100

100

100

100

100

100

100

6

100

100

100

100

100

100

100

100

7

100

99,31

100

100

100

100

100

100

8

96,5
6

95,17

100

100

100

100

100

100

9

100

98,6
2

100

100

100

100

100

100

10

100

98,62

100

100

100

100

100

100

AV
ERA
G
E

99,24


98,48


99,5
2


99,79


99,72

99,5
9


99,72


99,93



Intervals


Classes

81_9
0


9
1_
10
0


10
1_
11
0

11
1_
120

12
1_
130

131
_
140

141
_
15
0

Average

1

93,10

99,31

97,24

99,3
1

95,86

96,55

97,24

96,73

2

100

100

100

100

100

100

100

100

3

100

100

100

100

100

100

100

100

4

100

100

100

100

100

100

100

99,95

5

100

100

100

100

100

100

100

100

6

100

100

100

100

100

100

100

100

7

100

100

100

100

100

100

100

99,
95

8

100

100

99,31

99,3
1

100

100

100

99,
36

9

100

100

100

100

100

100

100

99,91

10

100

100

100

100

100

100

100

99,91

19


Table 4.2.1.1

Training Set

Recognition Rates for 15 iterations




Figure
4.2.1.1

Illustrati
on of

Training Set

Recognition
Rates
for 15
iterations




4.2.2

Results Obtained From Testing Set



Since
the vectors in
t
esting

have the same di
mension, the same number

of

zero
eigenvalues
(256
-
145+1=
112
)

were

obtained for each class
.

Table 4.
2
.2.1 shows the
recognition rates
and
Figure

4.2.2.1

shows
the illustration of recognition rates obtained from
testing
set

for 15 iterations

[Appendix

9
].





AV
ERA
G
E

99,31

99,93


99,6
6

99,
86


99,5
9

99,
66


99,72

99,58

20





Test


Intervals


Classes

1_10


11_20



21_30

31_40

41_50

51_60

61_70

71_80

1

55,87

60,3
9

61,6
8

61,4
2

50,3
9

62,77

61,16

77,22

2

99,9
4

99,87

99,8
1

100

99,16

79,74

90,06

89,61

3

98,58

98,64

99,29

79,16

87,5
5

88,7
1

79,54

99,54

4

89,74

99,35

89,8
1

99,61

89,4
2

89,6
8

98,90

80

5

99,5
5

99,4
2

88,9
7

98,64

79,93

89,87

99,54

98,58

6

98,8
4

98,64

89,74

97,6
8

99,48

89,54

99,22

87,
10

7

88,06

78,06

83,93

62

92,5
2

66,12

88,51

84,3
9

8

44,32

89,5
5

95,93

92,8
4

96,06

81,67

85,09

92,7
1

9

77,8
1

97,4
2

68

97,16

87,48

89,54

98,12

78

10

78,5
2

98,8
4

88,77

88,2
6

89,03

59,29

88,32

58,38

AV
ERAGE

83,12

92,0
2


86,59


87,6
8


87,10

79,69


88,85


84,55


Test


Intervals


Classes

81_9
0


9
1_
10
0


10
1_
11
0

11
1_
120

12
1_
130

131
_
140

141
_
15
0

Average






1

67,35

62,6
4

55,4
2

70,2
6

73,09

57,03

49,5
5

61,75





2

99,61

90,1
3

100

89,6
8

99,6
8

100

88,2
6

95,04





3

88,1
3

99,6
8

100

99,80

98,45

99,03

79,61

93,05





4

99,48

79,48

88,77

99,4
2

70,1
3

89,6
1

79,74

89,54





5

78,9
7

99,35

79,6
8

90,2
6

99,74

88,9
7

79,5
5

91,40





6

99,8
1

89,4
2

98,64

99,80

98,90

85,22

99,16

95,41





7

90,45

78,3
9

93,5
5

83,61

76,2
6

95,87

85,5
5

83,15





8

92,58

85,74

91,29

84,77

88,8
4

93,5
5

91,4
2

87,09





9

78,06

98,32

96,45

87,22

88,58

77,29

88,3
9

87,19





10

98,64

89,4
2

89,4
2

98

78,1
3

99,4
2

79,03

85,43





21


Table 4.
2
.2
.1

Testing

Set

Recognition Rates for 15 iterations








Figure

4.2.2.1
Illustration

of
Testing Set Recognition
Rates for 15 iterations








AV
ERAGE

89,3
1

87,2
6

89,32

90,28

87,18

88,6

82,0
3

86,9





22






CHAPTER 5




In this
p
roject,
the
common vector approach has been used

for handwritten digit
recognition
.

Fi
rstly,

i
nsufficient datacase
that become addictive to vector and dimension

in
CVA

was
used for Semeion
Handwritten Digit Dataset
.
However
,
h
andwriting
digits taken

from

80 people

were
analyzed

and
handwritten digits recognition rates were obtained
.
T
he
eigenvectors and common vectors
obtained from CVA

were

used for testing
set and training
set.
Since d
ata
are 0/
1 Boolean values
,
rates of recognition

are
lower than
expected
recognition rates
.
T
o increase
t
h
e
s
e

rates
, different vectors in the training set can be taken

as a
reference vector
.

Consequently, t
he

different

signals

measured

for
digits

can be tested

i
n CVA
method

t
o in
crease the recognition rates
.



As a result,

i
t is

expected that the proposed feature extraction and classification
methods will provide high pe
rformance for
more representative signals obtained fr
om
handwritten digits.












5

DISCUSSION AND CONCLUSIONS

23






[1]
Miguel Po
-
Hsien Wu,

Handwritten
Character Recognition

, The University Of
Queensland School of Information Technology and Electrical, October 29, 2003


[2
]

R. O. Duda, P. E. Hart, D. G. Stork,

Pattern Classification

, 2nd Edition, Wiley,

New York,


2000.


[3
]

Y. LeCun, L. Bottou, Y.
Bengio, P. Haffner,


Gradient
-
based learning applied

to document recognition

, Proc. of the IEEE 86 (11) (1998) 2278{2324.


[4
]

V. N. Vapnik,

The Nature of Statistical Learning Theory

, Springer
-
Verlag, New

York,

1995.



[5
]

Information Engineering
Building,

Dept. of Engineering Science
,

Parks Road,
Oxford

OX1 3PJ


http://www.robots.ox.ac.uk/~dclaus/digits/digits.htm


[6
]
Sargur N. Srihari, Edward J. Kuebert



Integration of hand
-
written address interpretation technology into the United States Postal

Service Remote Computer Reader system



[7
]

Plamondon R, Srihari, S.N.
‘Online and offline handwriting recognition’
,
January
2000 (vol. 22 no. 1)

pp
. 63
-
84

[
8
]
M Buscema, MetaNet:


The Theory of Independent Judges, in Substance Use &
Misuse


33(2)1998, pp 439
-
461.


http://archive.ics.uci.edu/ml/machine
-
learning
-
databases/semeion/semeion.names


[
9
]

M. Bilginer Gülmezoğlu, Semih Ergin
‘An approach for bearing fault detection in
electrical motors’

European Transactions on Electrical Power Volume 17, Issue 6, pages
628

641, November/December 2007

[1
0
]

M.Bilginer Gülmezoğlu , V. Dzhafarov, Rifat Edizkan, Atalay Barkana,
‘The
Common vector approach and its comparison with other subspace methods in
case of
sufficient data’

Computer Speech and Language
Volume 21 Issue 2, April, 2007

Academic Press Ltd.

London, UK


[11
]
M.B. Gülmezoğlu, V. Dzhafarov, M.Keskin and A.Barkana,
‘A no
vel approach to

isolated word recognition ’

IEEE Transaction on Speech and Audio Processing,

Automatic Face and Gesture
Recognition
, pp. 336
-
341, Apr.
1998


[12
]
Semih Ergin, M. Bilginer Gülmezoğlu
‘Face Recognition Based on Face Partitions
Using Common
Vector Approach’

Communications, Control and Signal Processing, 2008.
ISCCSP 2008. 3rd International Symposium on,

pp.
624


628, 978
-
1
-
4244
-
1687
-
5

6

REFERENCES

24









%%%%%%%%%%%%%%%%%%%%%%


[Appendix 1]

% 0 ve 1
R
akamının
G
örüntüsünü
V
eren
P
rogram


%%%%%%%%%%%%%%%%%%%%%%


for

i=1:16

% 0 ve 1 rakamının görüntüsünü veren programd(i,1:16)=x2001((i
-
1)*16+1:(i
-
1)*16+16);


a(1:16,i)=x1001((i
-
1)*16+1:(i
-
1)*16+16);


imshow(a)


end







%%%%%%%%%%%%%%%%%%%%%%

[Appendix
2
]

%%%%%%%%%%%%%%%%%%%%%%


using

System;

using

System.Collections.Generic;

using

System.Linq;

using

System.Text;

using

System.IO;


//ORİJİNAL DATABASE DOSYASINI İŞLER HALE GETİRMEK İÇİN PARÇALAYAN PROGRAM

/**********************************************************************/

/
*
1001
-
1155 DEN 10001
-
10155E KADAR 10 SINIF OLARAK PARÇALAMA İŞLEMİNİ
**/

/*
GİRİLEN HARFE GÖRE a
-
j ARASI SIRASIYLA 0
-
9 OLARAKA PARÇALAR
-
*********/

/************************************
**********************************/


namespace

splitText

{


class

Program


{


static

void

Main(
string
[] args)


{


//string[] lines = File.ReadAllLines("semeion.txt");



//int a = 1, b = 1,c = 1,d = 1,e = 1,f = 1,g
= 1,h = 1,i = 1,j
= 1;


char

input;




string
[] parts_a;


string
[] parts_b;


string
[] parts_c;


string
[] parts_d;


string
[] parts_e;


string
[] parts_f;

7

APPENDIX

25



string
[] parts_g;


string
[] parts_h;


string
[] parts_i;


string
[] parts_j;



Console
.Write(
"Digitleri ayırmak için karekter giriniz
--
> a
-
j:"
);



input =
Convert
.ToChar(
Console
.Read());



int

a = 10001;


foreach

(
string

icerik
in

File
.ReadAllLines(
"j.txt"
))


{


//
---------
0


if

(input ==
'a'
)


{




//Replace character to NULL


string

parca_a = icerik.Replace(
'j'
,
' '
);


//Split from space


parts_a = parca_a.Split(
' '
);




foreach

(
string

part
in

parts_a)


{




// if file contains 'a' then write data of file
and finish


if

(icerik.Contains(
' '
))


{


File
.WriteAllLines(
@"C:
\
Users
\
erener
\
Documents
\
Visual Studio
2008
\
Projects
\
splitText
\
splitText
\
all
\
"
+a +
".m"
, parts_a);


}






}


a++;


}


//
---------
1


if

(input ==
'b'
)


{


//Replace character to NULL


string

parca_b = icerik.Replace(
'b'
,
' '
);


//Split from space


parts_b = parca_b.Split(
' '
);



foreach

(
string

part
in

parts_b)


{


for

(
int

k = 2001; k < 2151; k++)


{


if

(icerik.Contains(
'b'
))


{



File
.WriteAllLines(k +
".m"
, parts_b);


}


}
break
;


}




}


//
---------
2


if

(input ==
'c'
)

26



{


//Replace character to NULL


string

parca_c = icerik.Replace(
'c'
,
' '
);


//Split from space


parts_c= parca_c.Split(
' '
);



foreach

(
string

part
in

parts_c)


{


for

(
int

k = 3001; k < 3151; k++)


{


if

(icerik.Contains(
'c'
))


{


File
.WriteAllLines(k +
".m"
, parts_c);


}


}
break
;




}




}


//
---------
3


if

(input ==
'd'
)


{


//Replace character to NULL


string

parca_d = icerik.Replace(
'd'
,
' '
);


//Split from space



parts_d = parca_d.Split(
' '
);



foreach

(
string

part
in

parts_d)


{


for

(
int

k = 4001; k < 4151; k++)


{


if

(icerik.Contains(
'd'
))


{


File
.WriteAllLines(k +
".m"
, parts_d);


}


}
break
;


}




}


//
---------
4


if

(input ==
'e'
)


{


//Replace character to NULL


string

parca_e = icerik.Replace(
'e'
,
' '
);


//Split from space


parts_e = parca_e.Split(
' '
);



foreach

(
string

part
in

parts_e)


{


for

(
int

k = 5001; k < 5151; k++)


{


if

(icerik.Contains(
'e'
))


{



//Console.WriteLine("{0}", part);



File
.WriteAllLines(k +
".m"
, parts_e);


}


}
break
;


}




}

27



//
---------
5


if

(input ==
'f'
)


{


//Replace character to NULL


string

parca_f = icerik.Replace(
'f'
,
' '
);


//Split from space


parts
_f = parca_f.Split(
' '
);



foreach

(
string

part
in

parts_f)


{


for

(
int

k = 6001; k < 6151; k++)


{


if

(icerik.Contains(
'f'
))


{


//Console.WriteLine("{0}", part);



File
.WriteAllLines(k +
".m"
, parts_f);


}


}
break
;


}




}


//
---------
6


if

(input ==
'g'
)


{


//Replace character to NULL


string

parca_g = icerik.Replace(
'g'
,
' '
);


//Split from space


parts_g = parca_g.Split(
' '
);



foreach

(
string

part
in

parts_g)


{


for

(
int

k = 7001; k < 7151; k++)


{


if

(icerik.Contains(
'g'
))


{


//Console.WriteLine("{0}", part);



File
.WriteAllLines(k +
".m"
, parts_g);


}


}
break
;


}




}


//
---------
7


if

(input ==
'h'
)


{


//Replace character to NULL


string

parca_h = icerik.Replace(
'h'
,
' '
);


//Split from space


parts_h = parca_h.Split(
' '
);



foreach

(
string

part
in

parts_h)


{


for

(
int

k = 8001; k <

8151; k++)


{


if

(icerik.Contains(
'h'
))


{


//Console.WriteLine("{0}", part);



File
.WriteAllLines(k +
".m"
,
parts_h);

28



}


}
break
;


}




}


//
---------
8


if

(input ==
'i'
)


{


//Replace character
to NULL


string

parca_i = icerik.Replace(
'i'
,
' '
);


//Split from space


parts_i = parca_i.Split(
' '
);


foreach

(
string

part
in

parts_i)


{


for

(
int

k = 9001; k < 9151; k++)


{


if

(icerik.Contains(
'i'
))


{


//Console.WriteLine("{0}", part);



File
.WriteAllLines(k +
".m"
, parts_i);


}


}
break
;


}




}


//
---------
9


if

(input ==
'j'
)


{


//Replace character to NULL


string

parca_j = icerik.Replace(
'j'
,
' '
);


//Split from space


parts_j = parca_j.Split(
' '
);


foreach

(
string

part
in

parts_j)


{


for

(
int

k = 10001; k < 10151; k++)


{


if

(icerik.Contains(
'j'
))


{


//Console.Writ
eLine("{0}", part);



File
.WriteAllLines(k +
".m"
, parts_j);


}


}
break
;


}




}



}


}


}

}











29










%%%%%%%%%%%%%%%%%%%%%%


[Appendix

3
]

Eigenvector

leave
-
ten
-
out strategy

%%%%%%%%%%%%%%%%%%%%%%


clear
all

clc

for

i=1:10

tmp= 1;

%m:vektör,n:boyut

%m=155,n=256



%m=155
-
10=145


for

index=1:155


% 145 training, 10 test


if
(

index>10 )
%to testing
-

learning


filepath=
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
all
\
'
;


c=load(sprintf(
'%s%d%03d.m'
,filepath,i,index));


ftr_mat(tmp,:)=c';


clear
c
;


tmp=tmp+1;


end


end

A1=cov(
ftr_mat);
%covariance

[v,d]=eig(A1);

m=(diag(d));

[y,x]=sort(m);


for

k=1:112
%n
-
m+1
--
>256
-
145+1=112


ev=v(:,x(k));


filepath=
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
eigC
\
_eigC'
;


save(sprintf(
'%s%d%03d'
,filepath,i,k),
'ev
'
);


end


fclose(
'all'
);

end



















30







%%%%%%%%%%%%%%%%%

[Appendix 4]

%Tanıma oranlarını

dogru
dosyalar
ın
a yazan program

%%%%%%%%%%%%%%%%%



fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru'
,
'w'
);


fprintf(fid1,
'%d
\
n'
,o);


fprintf(fid1,
'%d
\
n'
,dogru);


fclose(fid1);




fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru1'
,
'w'
);


fprintf(fid1,
'%d
\
n'
,dogru1);


fclose(fid1);




fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru2'
,
'w'
);


fprintf(fid1,
'%d
\
n'
,dogru4);


fclose(fid1);




fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru3'
,
'w'
);


f
printf(fid1,
'%d
\
n'
,dogru5);


fclose(fid1);



%%%%%%%%%%%%%%%%%%%%%%


[Appendix

5
]


% DOGRU DOSYASINI KAYIT ICIN





%

SIFIRLAYAN



% ALT PROGRAM


%%%%%%%%%%%%%%%%%%%%%%



o=1;


dogru(10)=0;


fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru'
,
'w'
);


fprintf(fid1,
'%d
\
n'
,o);


fprintf(fid1,
'%d
\
n'
,dogru);


fclose(fid1);






fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru1'
,
'w'
);


fprintf(fid1,
'%d
\
n'
,dogru);


fclose(fid1);






fid1=
fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru2'
,
'w'
);


fprintf(fid1,
'%d
\
n'
,dogru);


fclose(fid1);






fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru3'
,
'w'
);


fprintf(fid1,
'%d
\
n'
,dogru);


fclose(fid1);


31



%%%%%%%%%%%%%%%%%%%%%%

[Appendix

6
]

%Program Yarıdan Baslatıldıgında Kaldıgı Yerdeki Tanıma
Oranlarını Okuyan Program.

%%%%%%%%%%%%%%%%%%%%%%


fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru'
,
'r'
);


kod=fscanf(fid1,
'%d'
);


fclose(fid1);


dogru=kod(2:11);


ilksinir=kod(1)+1;


clear
kod

fid1




fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru1'
,
'r'
);


kod=fscanf(fid1,
'%d'
);


fclose(fid1);


dogru1=kod;



clear
kod




fid1=fopen(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
dogru2'
,
'r'
);


kod=fscanf(fid1,
'%d'
);


fclose(fid1);


dogru4=kod;


clear
kod




fid1=fopen(
'C:
\
Users
\
erener
\
Desk
top
\
my_matlab_program
\
dogru3'
,
'r'
);


kod=fscanf(fid1,
'%d'
);


fclose(fid1);


dogru5=kod;


clear
kod


























32




%%%%%%%%%%%%%%%%%%%%%%


[Appendix
7
]


TRAINING VE TEST TANIMA ORANLARI BULAN PROGRAM

%%%%%%%%%%%%%%%%%%%%%%


clear
all

clc



for

x=1:155



sifir2

ilk2

k=112;

p=1;

q=k;



for

classNumber2=1:10
% class number




for

operator=1:k


filepath=
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
eigC
\
_eigC'
;


load(sprintf(
'%s%d%03d'
,filepath,classNumber2,operator),
'ev'
);


eigenvector(:,operator)= ev;


end


egi(:,p:q)=eigenvector;


clear
eigenvector
;


p=p+k;


q=q+k;


fclose(
'all'
);

end





for

classNumber1=1:155


if
(classNumber1>10)
%test için ayrılan data


for

classNumber2=1:10
%class number


filepath=
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
all
\
'
;


C=load(sprintf(
'%s%d%03d.m'
,filepath,classNumber2,
classNumber1));


digit(:,classNumber2)=C;


end

l=1;

m=k;


%tanıma oranlarını görmek için teker teker çıktı alınır


for

classNumber2=1:10
%class number




filepath=
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
all
\
'
;


D=load(sprintf(
'%s%d%03d.m'
,filepath,classNumber2,x));
%reference
vector




for

classNumber3=1:10


A1=0;


digitVector=digit(:,classNumber3)
-
D;


for

ok=l:m


A1=A1+(digitVector'*egi(:,ok))*egi(:,ok);


end

33



ortak1(classNumber3,classNumber2)=norm(A1);


ortak11(classNumber3,classNumber2)=norm(A1)^2;


% ortak11(classNumber3,classNumber2)=norm(A4
-
(
norm(A4)/norm(A1))*A1);


end
;


l=l+k;


m=m+k;


fclose(
'all'
);


end



%buraya kadar gel


for

classNumber2=1:10


kucuk=min(ortak1(classNumber2,:));


kucuk1=min(ortak11(classNumber2,:));


if

kucuk==ortak1(classNumber2,classNumber2)


dogru(classNumber2)=dogru(classNumber2)+1;


end


if

kucuk1==ortak11(classNumber2,classNumber2)


dogru1(classNumber2)=dogru1(classNumber2)+1;


end


end


for

j=1:10


sira(j,:)=sort(ortak1(
j,:));


sira1(j,:)=sort(ortak11(j,:));


end



for

j=1:10


for

i=1:10


for

z=1:10


if

ortak1(j,i)==sira(j,z)


dogru2(j,i)=z;


break
;


end


end


for

z=1:10


if

ortak11(
j,i)==sira1(j,z)


dogru3(j,i)=z;


break
;


end


end


end


end


asil=dogru2+dogru3;




for

i=1:10


kucuk4=min(asil(i,:));


if

kucuk4==asil(i,i)


dogru4(i)=dogru4(i)+1;


end


end





son


n=k;




ara=mean(dogru);




for

classNumber2=1:10

% avgvector(classNumber2,x) = 10*dogru1(classNumber2);


avgvector(classNumber2,x) =
100/145*dogru1(classNumber2);


end




ara=mean(dogru1);

34




% avgvectorall(:,x) = 10*ara;


avgvectorall(:,x) = 100/145*ara;


end



end

% 20/29*ara

x

clear
ara
;

clear
s2
;

clear
s3
;

clear
dogru
;

clear
dogru1
;

clear
dogru4
;

clear
fid1
;



end

% xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test1
-
10.xlsx',k,1,'C18');

% xlswrite('C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test1
-
10.xlsx',avgvector,1,'B2');

% xlswrite('C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test1
-
10.xl
sx',avgvectorall,1,'B15');



xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
-
10.xlsx'
,
'k'
,1,
'A18'
);

xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
-
10.xlsx'
,k,1,
'C18'
);

xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
-
10.xlsx'
,avgvector,1,
'B2'
);

xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
-
10.xlsx'
,avgvectorall,1,
'B15'
);




%%%%%%%%%%%%%%%%%%%%%%


[Appendix

8
]

% Training Setinin

Ortalamalarını
B
ulan Program


%%%%%%%%%%%%%%%%%%%%%%


clear
all

clc



M1=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
-
10.xlsx'
,1,
'B15:EZ15'
);

M2=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training11
-
20.xlsx'
,1,
'B15:EZ15'
);

M3=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training21
-
30.xlsx'
,1,
'B15:EZ15'
);

M4=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training31
-
40.xlsx'
,1,
'B15:EZ15'
);

M5=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_m
atlab_program
\
excelfiles
\
training41
-
50.xlsx'
,1,
'B15:EZ15'
);

M6=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training51
-
60.xlsx'
,1,
'B15:EZ15'
);

M7=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training61
-
70.xlsx'
,1,
'B15:EZ15
'
);

M8=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training71
-
80.xlsx'
,1,
'B15:EZ15'
);

35


M9=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training81
-
90.xlsx'
,1,
'B15:EZ15'
);

M10=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training9
1
-
100.xlsx'
,1,
'B15:EZ15'
);

M11=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
01
-
110.xlsx'
,1,
'B15:EZ15'
);

M12=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfil
es
\
training1
11
-
120.xlsx'
,1,
'B15:EZ15'
);

M13=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
21
-
130.xlsx'
,1,
'B15:EZ15'
);

M14=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
31
-
140.xlsx'
,1,
'B15:EZ15'
);

M15=xlsrea
d(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
training1
41
-
150.xlsx'
,1,
'B15:EZ15'
);



for

i = 1:1


for

j = 1:155




totalTrainAvg(i,j) =
(M1(i,j)+M2(i,j)+M3(i,j)+M4(i,j)+M5(i,j)+M6(i,j)+M7(i,j)+M8(i,j)+M9(i,j)+M1
0(i,j)+M11(i,j)+M1
2(i,j)+M13(i,j)+M14(i,j)+M15(i,j))/15;






end

end



%write the avg



xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
trainingCLAS
SESAvg.xlsx'
,
'ORTALAMA'
,1,
'B4'
);

xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
trainingCLAS
SESAvg.xlsx'
,totalTrainAvg,1,
'B5'
);









%%%%%%%%%%%%%%%%%%%%%%



[Appendix

9
]

%
Test Setinin Ortalamalarını
B
ulan Program



%%%%%%%%%%%%%%%%%%%%%%


clear
all

clc



M1=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test1
-
10.xlsx'
,1,
'B15:EZ15'
);

M2=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test11
-
20.xlsx'
,1,
'B15:EZ15'
);

M3=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test21
-
30.x
lsx'
,1,
'B15:EZ15'
);

M4=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test31
-
40.xlsx'
,1,
'B15:EZ15'
);

M5=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test41
-
50.xlsx'
,1,
'B15:EZ15'
);

M6=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test51
-
60.xlsx'
,1,
'B15:EZ15'
);

36


M7=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test61
-
70.xlsx'
,1,
'B15:EZ15'
);

M8=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test71
-
80.
xlsx'
,1,
'B15:EZ15'
);

M9=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test81
-
90.xlsx'
,1,
'B15:EZ15'
);

M10=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test91
-
100.xlsx'
,1,
'B15:EZ15'
);

M11=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_m
atlab_program
\
excelfiles
\
test101
-
110.xlsx'
,1,
'B15:EZ15'
);

M12=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test111
-
120.xlsx'
,1,
'B15:EZ15'
);

M13=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test121
-
130.xlsx'
,1,
'B15:EZ15'
);

M14=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test131
-
140.xlsx'
,1,
'B15:EZ15'
);

M15=xlsread(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
test141
-
150.xlsx'
,1,
'B15:EZ15'
);







for

i = 1:1


for

j = 1:155




totalTestAvg(i,j) =
(M1(i,j)+M2(i,j)+M3(i,j)+M4(i,j)+M5(i,j)+M6(i,j)+M7(i,j)+M8(i,j)+M9(i,j)+M1
0(i,j)+M11(i,j)+M12(i,j)+M13(i,j)+M14(i,j)+M15(i,j))/15;






end

end



%write the avg



xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
testAvg.xlsx
'
,
'ORTALAMA'
,1,
'B4'
);

xlswrite(
'C:
\
Users
\
erener
\
Desktop
\
my_matlab_program
\
excelfiles
\
testAvg.xlsx
'
,totalTestAvg,1,
'B5'
);