Octave 不断给出函数的结果,尽管没有被询问
Octave keeps giving results from function although not asked
我在 Octave 中创建了一个函数,此时我只想显示其中一个可能的输出。代码:
function [pi, time, numiter] = PageRank(pi0,H,v,n,alpha,epsilon);
rowsumvector=ones(1,n)*H';
nonzerorows=find(rowsumvector);
zerorows=setdiff(1:n,nonzerorows); l=length(zerorows);
a=sparse(zerorows,ones(l,1),ones(l,1),n,1);
k=0;
residual=1;
pi=pi0;
tic;
while (residual >= epsilon)
prevpi=pi;
k=k+1;
pi=alpha*pi*H + (alpha*(pi*a)+1-alpha)*v;
residual = norm(pi-prevpi,1);
end
pi;
numiter=k
time=toc;
endfunction
现在我只想返回 numiter,但它也一直给我返回 pi,无论我是否删除 pi;
。
它returns它的格式如下:
>> PageRank(pi0,H,v,length(H),0.9,epsilon)
numiter = 32
ans =
0.026867 0.157753 0.026867 0.133573 0.315385
对我来说,pi 没有随变量一起给出,而只是作为 ans
,这似乎很奇怪。
有什么建议吗?
我知道 Octave documentation for this 不是很广泛,但也许它提供了足够的提示来理解您对输出变量的看法是错误的。
来电
PageRank(pi0,H,v,length(H),0.9,epsilon)
returns单个输出参数,等价于
ans = PageRank(pi0,H,v,length(H),0.9,epsilon)
ans
如果明确给出 none 则始终是隐含的输出参数。 ans
将被分配 pi
的值,您的函数的第一个输出参数。您的工作区中的变量 pi
(也不是 time,
或 numiter
)将被修改或分配给。这些是您的函数中局部变量的名称。
要获取其他输出变量,请执行以下操作:
[out1,out2,out3] = PageRank(pi0,H,v,length(H),0.9,epsilon)
现在,变量 out1
将被赋予 pi
在您的函数中的值。 out2
将包含 time
的值,而 out3
将包含 numiter
、
的值
如果您不想要前两个输出参数而只想要第三个,请执行此操作:
[~,~,out3] = PageRank(pi0,H,v,length(H),0.9,epsilon)
~
向 Octave 表明您想忽略该输出参数。
我在 Octave 中创建了一个函数,此时我只想显示其中一个可能的输出。代码:
function [pi, time, numiter] = PageRank(pi0,H,v,n,alpha,epsilon);
rowsumvector=ones(1,n)*H';
nonzerorows=find(rowsumvector);
zerorows=setdiff(1:n,nonzerorows); l=length(zerorows);
a=sparse(zerorows,ones(l,1),ones(l,1),n,1);
k=0;
residual=1;
pi=pi0;
tic;
while (residual >= epsilon)
prevpi=pi;
k=k+1;
pi=alpha*pi*H + (alpha*(pi*a)+1-alpha)*v;
residual = norm(pi-prevpi,1);
end
pi;
numiter=k
time=toc;
endfunction
现在我只想返回 numiter,但它也一直给我返回 pi,无论我是否删除 pi;
。
它returns它的格式如下:
>> PageRank(pi0,H,v,length(H),0.9,epsilon)
numiter = 32
ans =
0.026867 0.157753 0.026867 0.133573 0.315385
对我来说,pi 没有随变量一起给出,而只是作为 ans
,这似乎很奇怪。
有什么建议吗?
我知道 Octave documentation for this 不是很广泛,但也许它提供了足够的提示来理解您对输出变量的看法是错误的。
来电
PageRank(pi0,H,v,length(H),0.9,epsilon)
returns单个输出参数,等价于
ans = PageRank(pi0,H,v,length(H),0.9,epsilon)
ans
如果明确给出 none 则始终是隐含的输出参数。 ans
将被分配 pi
的值,您的函数的第一个输出参数。您的工作区中的变量 pi
(也不是 time,
或 numiter
)将被修改或分配给。这些是您的函数中局部变量的名称。
要获取其他输出变量,请执行以下操作:
[out1,out2,out3] = PageRank(pi0,H,v,length(H),0.9,epsilon)
现在,变量 out1
将被赋予 pi
在您的函数中的值。 out2
将包含 time
的值,而 out3
将包含 numiter
、
如果您不想要前两个输出参数而只想要第三个,请执行此操作:
[~,~,out3] = PageRank(pi0,H,v,length(H),0.9,epsilon)
~
向 Octave 表明您想忽略该输出参数。