Convert correlation matrix into a weighted adjacency matrix

Hi all,
How would I convert an nxn correlation matrix with a mix of positive and negative numbers into a weighted connection matrix? How should I go about converting the negative numbers into positive ones so that I can eventually plot a directed graph?

Answers (1)

Hi Dinal,
I see that you have a correlation matrix and want to convert it to represent a directed graph.
One way to convert the negative values in the given matrix to positive is to apply a custom transformation that maps [-1, 1] to [0, 1]. For example, the following function scales all the values in the correlation matrix linearly to positive numbers:
transformed_matrix = (correlation_matrix + 1) ./ 2;
The transformed matrix can be used as an adjacency matrix for creating a graph using the MATLAB ‘digraph’ function as shown below:
G = digraph(transformed_matrix);
Refer to the documentation of the ‘digraph’ function for more details. https://www.mathworks.com/help/matlab/ref/digraph.html

Categories

Find more on Graph and Network Algorithms in Help Center and File Exchange

Products

Release

R2018b

Asked:

on 16 Mar 2020

Answered:

on 31 Jan 2025

Community Treasure Hunt

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

Start Hunting!