how i can have an adjacency matrix only contains 0 and 1
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
fereshteh izadi
am 9 Jan. 2016
Kommentiert: fereshteh izadi
am 11 Jan. 2016
hello
i have a data frame, i convert that to an adjacency matrix but the adjacency matrix contains 2 while i need only 1 and 0..how i can have an adjacency matrix only contains 1 and 0 please?
this is my data frame
TFLocus TargetLocus InteractionType
AT5G10140 AT1G65480 -1
AT5G11260 AT1G27480 -1
AT5G11260 AT5G53370 -1
AT5G11260 AT1G03630 -1
AT5G11260 AT1G13600 -1
AT5G11260 AT2G41670 -1
AT5G11260 AT2G05160 -1
AT5G11260 AT2G40170 -1
by this code i have an adjacency matrix contains 0 and 1 and 2 ..
fid = fopen('Ara_GoldST.txt', 'rt');
datacell = textscan(fid, '%s%s%d', 'HeaderLines', 1);
fclose(fid);
TFLocus = datacell{1};
TargetLocus = datacell{2};
all_locus = unique([TFLocus; TargetLocus]);
num_locus = length(all_locus);
[~, TFidx] = ismember(TFLocus, all_locus);
[~, Targidx] = ismember(TargetLocus, all_locus);
adj_matrix = accumarray([TFidx(:), Targidx(:)], datacell{3}, [num_locus, num_locus]);
csvwrite('myfile.txt', adj_matrix);
%max(adj_matrix)
%min(adj_matrix)
thank you
4 Kommentare
Akzeptierte Antwort
Walter Roberson
am 9 Jan. 2016
adj_matrix = adj_matrix > 0;
2 Kommentare
Guillaume
am 10 Jan. 2016
Alternatively, you could rewrite the accumarray call to:
adj_matrix = accumarray([TFidx(:), Targidx(:)], 1, [num_locus, num_locus], @(~) 1);
Or to:
adj_matrix = accumarray([TFidx(:), Targidx(:)], 1, [num_locus, num_locus], @prod);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Large Files and Big Data finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!