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?

Antworten (1)

Abhiram
Abhiram am 31 Jan. 2025
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

Kategorien

Mehr zu Graph and Network Algorithms finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2018b

Gefragt:

am 16 Mär. 2020

Beantwortet:

am 31 Jan. 2025

Community Treasure Hunt

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

Start Hunting!

Translated by