How to create a graph time vs value n

조회 수: 12 (최근 30일)
Emilia
Emilia 2020년 12월 3일
댓글: Emilia 2020년 12월 3일
Hello,
I have a function that we enter a value n. Next I designed a matrix here and it measures time (tic,toc) until vector returns result.
Now I want to produce a graph for 4<=n<=50 vs time, How can this created?
Thanks for the helpers :)
function [A,VectorOut,B]= pp(n)
tic
f=4*ones(1,n^2);
m=diag(f);
x = zeros(1,n^2);
x_new = x;
j=0;
while j~=n^2
[m(j+1,j+2)]=-1;
[m(j+1,j+4)]=-1;
[m(j+2,j+1)]=-1;
[m(j+4,j+1)]=-1;
j=j+1 ;
end
t=m(1:n^2,1:n^2);
v=zeros(1,n^2);
v(1)=1;
v(n^2)=1;
A=t;
B=v';
for i = 1:n^2
x_new(i) = (B(i) - sum(A(i,1:i-1).*x_new(1:i-1)) - sum(A(i,i+1:n).*x(i+1:n)))/A(i,i);
end
VectorOut=x_new'
toc
end

답변 (2개)

Ameer Hamza
Ameer Hamza 2020년 12월 3일
편집: Ameer Hamza 2020년 12월 3일
I think it might be better if you move the tic ... toc lines outside the function. For example, remove these lines and then run the following code
n = 4:50;
ts = zeros(size(n));
for i = 1:numel(n)
tic
[A,VectorOut,B]= pp(n(i));
ts(i) = toc;
end
plot(n, ts)
Alternatively, you will need to return the value of 't' too. For example,
function [A,VectorOut,B,t]= pp(n)
tic
f=4*ones(1,n^2);
.. ..
.. ..
.. ..
.. ..
.. ..
VectorOut=x_new'
t = toc
end
and then run the code
n = 4:50;
ts = zeros(size(n));
for i = 1:numel(n)
[A,VectorOut,B,ts(i)]= pp(n(i));
end
plot(n, ts)

Deepak Gupta
Deepak Gupta 2020년 12월 3일
편집: Deepak Gupta 2020년 12월 3일
Hi Emilia,
Placed of toc in the function will just display the elapsed time there instead you need to return the elapsed time from this function, to the script where you will be called this function. i.e. in your function you can write.
totalTime = toc;
And then return it.
In your script you need to save these times with respect to n values. i.e.
n = 4:50;
totalTime = zeros(1, size(n));
for n
[~, ~, ~, nTime] = pp(n);
totalTime(n-3) = nTime;
end
Now you can plot time vs n.
plot(totalTime, n)
Hope this helps,
Cheers,
Deepak

카테고리

Help CenterFile Exchange에서 Graph and Network Algorithms에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by