Цель должна быть плотным двойным массивом индексов узлов. Как решить?
Я пытаюсь построить сетевой график с данными о смежности слов. Но я получаю ошибку "Цель должна быть плотным двойным массивом индексов узлов". Ниже приведен мой код:
fileName = 'adjnoun.gml';
inputfile = fopen(fileName);
A=[];
l=0;
k=1;
while 1
% Get a line from the input file
tline = fgetl(inputfile);
% Quit if end of file
if ~ischar(tline)
break
end
nums = regexp(tline,'\d+','match'); %get number from string
if length(nums)
if l==1
l=0;
A(k,2)=str2num(nums{1});
k=k+1;
continue;
end
A(k,1)=str2num(nums{1});
l=1;
else
l=0;
continue;
end
end
A= sort(A);
g = graph(A(:,1),A(:,2));
A - двойная матрица 425X2. Когда я пытаюсь создать график g = graph(A(:,1),A(:,2))
Кидает ошибку.
1 ответ
Решение
Matlab-х graph(s, t)
Функция отобразит эту ошибку, если у вас есть 0 в исходном или целевом массивах. Другими словами, если A(:, 2)
содержит любые нули, Matlab потерпит неудачу с отображаемой ошибкой. Вы могли бы:
я. Добавьте "1" ко всем вашим значениям с помощью: A=A+1
II. Измените исходный график, чтобы получить вывод.gml без нулей.