I want to classify my image files into 4 classes, but I only get 0 and 1 with this code:
Target_Data = ones(1,Total_Images);
Target_Data(1:Total_Images/4) = 0;
How to add the other classes? Thank you.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 18 Mai 2019

0 Stimmen

Target_Data = repmat((1:4).', Total_Images/4, 1);

7 Kommentare

Sir @Walter say total images 10, it can be any value
>> Target_Data=repmat((1:4).', 10/4, 1);
Error using repmat
Replication factors must be a row vector of integers or integer scalars.
Qvna Lhyvnav
Qvna Lhyvnav am 18 Mai 2019
Thank you for your reply. How if I want to classify each 15 files with different values? For example, 1-15 is 1, 16-30 is 2, etc. I have 60 files and I want to have the same dimention as my training data.
Walter Roberson
Walter Roberson am 18 Mai 2019
KALYAN ACHARJYA: what you mention is a problem, but with the information given to us, the meaning of dividing into N classes is not defined for the case where the number of images is not a multiple of N.
Target_Data = repelem((1:4).', Total_Images/4, 1);
Qvna Lhyvnav
Qvna Lhyvnav am 18 Mai 2019
The code works to me, but I transpose it again before compare it to the training data. My training data has 3x60 dimension, while the code gives me 60x1 dimension. Is it possible to use repelem without transpose in the function?
Target_Data = repelem(1:4, Total_Images/4);
Qvna Lhyvnav
Qvna Lhyvnav am 18 Mai 2019
Done. Thank you for your help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

KALYAN ACHARJYA
KALYAN ACHARJYA am 18 Mai 2019
Bearbeitet: KALYAN ACHARJYA am 18 Mai 2019

0 Stimmen

May be you are confusing with logical indexing, there is nothing related to classification of images
lets say Total_Images=8, that menas Target_Data= ones(1,8)
>> Target_Data=ones(1,Total_Images)
Target_Data =
1 1 1 1 1 1 1 1
in next line Total_Images/4=2, so the next line is Target_Data(1:2)=0
>> Target_Data(1:Total_Images/4)=0
Target_Data =
0 0 1 1 1 1 1 1
It is checking the 1 D array elements from 1 to 2 (Target_Data(1:2)) equal to zero or not, its false logic, therefore it is zero,
There for 1st and 2nd elements are 0 and rest are same as initial Taret__Data.
If you do following one, lets check all Target_Data elemets, wheather 0 or not, you may get all zero in resultant target elements.
>> Target_Data(1:8)=0
Target_Data =
0 0 0 0 0 0 0 0
I didnot find any clue to classes images based on these two statements, if you can, as you now undestand the code, do modification accordingly.

1 Kommentar

Qvna Lhyvnav
Qvna Lhyvnav am 18 Mai 2019
Thank you for your reply. I understand, but I want to make four classes (60 files with each 15 files has different values). This code works for two classes.

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Version

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by