Filter löschen
Filter löschen

Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

How to plot a graph in matalab2016?

1 Ansicht (letzte 30 Tage)
SUNANNA S S
SUNANNA S S am 18 Mai 2017
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
When I use plot() it gives an error that the value is not integer.
I want to plot the graph
E=[0.0236;0.0485;0.0889;0.569;0.789;0.894;1]
and
top=[10%;15%;20%;30%;40%;50%]
Please help.
  2 Kommentare
KSSV
KSSV am 18 Mai 2017
Show us the complete code...which you tried...
SUNANNA S S
SUNANNA S S am 21 Mai 2017
Actually I'm trying to implement the PageRank algorithm in my code . But this gives an error. Please help. I want to plot the graph of Eap on y axis and top on x axis.
clc;
% n = 6;
% i = [2 6 3 4 4 5 6 1 1];
% j = [1 1 2 2 3 3 3 4 6];
load Eapfinal.mat;
top=[0.10,0.15,0.20,0.30,0.40,0.50];
s=top;
t=Eap;%Eap=0.0136,0.0503,0.1761,0.2724,0.2985,0.2986
n=6;
G = sparse(s,t,1,n,n);
spy(G)
%%Page Rank
p = 0.85;
delta = (1-p)/n;
c = sum(G,1);
k = find(c~=0);
D = sparse(k,k,1./c(k),n,n);
e = ones(n,1);
I = speye(n,n);
x = (I - p*G*D)\e;
x = x/sum(x);
%%Bar graph
bar(x);
title('Page Rank');
The error I get after running this code is
Error using sparse
Index into matrix must be an integer.
Error in PageRankafter (line 13)
G = sparse(s,t,1,n,n);

Antworten (2)

Rik
Rik am 18 Mai 2017
In general you should copy the entire error stack (all the red text). This makes it easier for others to understand what went wrong.
I noticed 2 things:
  • the percent sign marks the beginning of a comment, so top will not be correctly assigned (although I assume that you already did top=[0.10,0.15,0.20,0.30,0.40,0.50];)
  • E has 7 values, while top has only 6. It is impossible for plot to know what xy-pairs to make.

Walter Roberson
Walter Roberson am 21 Mai 2017
The call
G = sparse(s,t,1,n,n);
means that you want to create the sparse matrix equivalent of
G = zeros(n, n);
for K = 1 : length(s)
G( s(K), t(K) ) = 1;
end
That can only work if all of the elements of s and all of the elements of t are positive integers, but they are not: they are values like 0.10 and 0.0136
It is difficult to say exactly what your replacement code should be. Possibly
Gs = sparse(i, j, s, n, n);
Gt = sparse(i, j, t, n, n);
if the intention is to create sparse matrix that has the values in s stored at the i and j locations, an that has t stored at the i and j locations. Sparse matrices cannot be multi-dimensional: you can only store a single value at any one index pair.

Diese Frage ist geschlossen.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by