MATLAB: Matrix union or extracting matrix elements

MATLABmatrix extractionsubelements

Hi, I have very basic question I have two matrices. One is the adjacency matrix A and the other one W is filled random numbers(i.e. randi(10,10,10)). I want to extract all entries in the W for which A has non zero elements. if I do W(A) I got the numbers I need but in a column format and with out indexes. I just need to create a matrix where i keep weights of non zero edges.
[1 0 1] [4 7 9] [4 0 9]
[1 0 0] [8 5 4] = [8 0 0]
[0 0 1] [7 2 5] [0 0 5]

Best Answer

ons = [1 0 1;1 0 0;0 0 1] ;
a = [4 7 9;8 5 4;7 2 5];
W = a.*ons