Filter löschen
Filter löschen

how to cluster bit strings using matlab

1 Ansicht (letzte 30 Tage)
kumud alok
kumud alok am 6 Mai 2016
Kommentiert: kumud alok am 9 Mai 2016
A= [ 1 0 0 0 0 0 1 1 0,
0 0 0 0 1 1 0 0 1,
1 1 1 1 1 1 1 0 0,
1 1 1 1 1 1 1 0 0,
1 0 0 0 0 0 1 1 0,
0 0 0 0 1 1 0 0 1,
1 1 1 1 1 1 1 1 1]
let A be the binary matrix.. 1 means there is decrease in production and 0 means there is increase in production ..
how will i cluster the same bit strings patterns?
i m working on health care data set[rows= 453 and col = 60] .. 1 represent decrease and 0 represent increase ..can this be possible using loops..
note: order of bits are important..// order dependent
  8 Kommentare
kumud alok
kumud alok am 6 Mai 2016
okay..thank you so much sir...i m learning matlab..i m working in a project ..my work is to analyse bit string patterns and then apply clustering algorithm..i have applied hierarchical clustering but i m still confused..i just want to asked u about the clustering ..and distance measure also..which similarity measure used i should either hamming or lavenstein..please help me..
Walter Roberson
Walter Roberson am 6 Mai 2016
The original code used
A= [ 1 0 0 0 0 0 1 1 0,
0 0 0 0 1 1 0 0 1,
1 1 1 1 1 1 1 0 0,
and so on. MATLAB does know to treat the end of line line a semi-colon in that case.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Guillaume
Guillaume am 6 Mai 2016
It sounds like you just want to identify all identical 'bit strings' and assign them the same ID. This can easily be achieved with unique.
First, let's change A into something useful, since as mentioned in the comment to your question A is not "7 bit strings separated by commas", matlab ignores the commas. While we're at it, let's give the variable a name that has meaning:
A = [ 1 0 0 0 0 0 1 1 0, 0 0 0 0 1 1 0 0 1, 1 1 1 1 1 1 1 0 0, 1 1 1 1 1 1 1 0 0, 1 0 0 0 0 0 1 1 0, 0 0 0 0 1 1 0 0 1, 1 1 1 1 1 1 1 1 1]
bitstreams = reshape(A, 9, [])'; %reshape A into an n x 9 array
To give a unique ID to each identical bit stream we can simply use the third return value of unique, with the 'rows' option to the unique to consider each row as a complete object.
[~, ~, id] = unique(bitstreams, 'rows', 'stable') %stable optional
This returns
id = [1; 2; 3; 3; 1; 2; 4]
where you can see that the 1st and 5th bitstream have been assigned id 1, the 2nd and 6th id 2, the 3rd and 4th id 3, and the last one id 4.

Weitere Antworten (0)

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by