Как создать график в матлабе из файла .mat?

Я хочу представить граф в MATLAB, используя информацию, хранящуюся в .mat файл. Файл .mat представляет собой квадратную матрицу NxN. Цель состоит в том, чтобы иметь возможность собирать информацию о графе (количество узлов, средняя степень, связанные компоненты и т. д.), используя матрицу, которая представляет ребра между узлами.

Я знаю, что Graph::createGraphFromMatrix существует, но не поддерживается в MATLAB.

Я пробовал варианты

G = graph(double('sparse.mat'));
D = degree(G);

Но тогда я получаю такие ошибки, как

Undefined function 'graph' for input arguments of type 'double'.

для любого типа я пытаюсь. Кто-нибудь знает как это сделать?


person jblakeley    schedule 29.09.2015    source источник


Ответы (2)


Во-первых, вы неправильно загружаете данные в MATLAB. Сначала вам нужно использовать функцию load для загрузки данных. Затем вы можете использовать данные в MATLAB после загрузки. Это так же просто, как:

load sparse.mat

Однако я не знаю, как будет называться переменная графика, поэтому вам придется посмотреть на свое рабочее пространство в этом отношении.

Теперь о другой вашей проблеме: graph — это функция, которая был введен с R2015b. Вы получаете эту ошибку, потому что ваша версия MATLAB старше этой и поэтому graph недоступна в вашем дистрибутиве MATLAB. Кроме того, страница, на которую вы нас сослали, является частью интерфейса MuPAD. Вы не можете запустить это в обычных настройках MATLAB... как вы можете видеть из предупреждения на странице. Вам действительно нужна вот эта страница: http://www.mathworks.com/help/matlab/ref/graph.html?searchHighlight=graph

По сути, вы не можете использовать graph в настоящее время. Один из вариантов — обновить вашу версию MATLAB. Если это невозможно, то возможны другие сторонние библиотеки MATLAB. Один из лучших наборов инструментов, доступных для загрузки, можно загрузить непосредственно с веб-сайта MathWorks FileExchange, в частности набор инструментов grTheory: http://www.mathworks.com/matlabcentral/fileexchange/4266-grtheory-graph-theory-toolbox.. Функция, которую вы ищете, — это функция grPlot.

person rayryeng    schedule 29.09.2015
comment
@jblakeley - с удовольствием :) Если вам больше не нужна помощь, рассмотрите возможность принятия моего ответа. Это можно сделать, нажав на значок галочки в верхней части моего поста слева под стрелками вверх и вниз для голосования. Удачи! - person rayryeng; 30.09.2015

Вам нужно будет сначала загрузить файл, а затем использовать эту переменную

%Considering sparse.mat is in same directory as script    
load sparse %.mat is not not needed
%This will load the variables from graph lets say it had variable as data stored in it 
G = graph(double(data));
D=degree(G)

Я думаю, что график - это не функция для построения графика, для получения информации о функциях построения графиков посетите http://in.mathworks.com/help/matlab/ref/plot.html

person Rushikesh Tade    schedule 29.09.2015
comment
Это неправильный ответ. Смотрите мой ответ для дальнейшего понимания. - person rayryeng; 29.09.2015
comment
Спасибо, я не знал эту функцию. - person Rushikesh Tade; 29.09.2015
comment
Хотя насчет нагрузки вы правы. Извиняюсь, что невнимательно прочитал. - person rayryeng; 29.09.2015