0

是否可以在文件函数定义文件中调用函数?我很好奇。感谢您的回答。

%It would prove efficient to write a function since we are going
%to do the same thing twice.
function fleas(N);
clear totalflea;
%The below vector is for plotting purposes only.
Nvector = linspace(0, N, N + 1);
%Define the flea vector as follows:
%The value 0 correspond to a fleas residing on dog B 
%(Burnside);thus initially all fleas are on Burnside.
totalflea(1) = 0;
%Since initially we do not have any fleas on Burnside.
fv = zeros(1,50);
for n = 1 : N;
k = randi(50);
%The above code generates a random integer between 1 and 50.
%The code has been implemented in Octave 3.4.
switch fv(k)
    case 0
    fv(k) = 1;
    case 1
    fv(k) = 0;
end
%The above statement changes the values of fv(k) depending
%on its initial value. The possible values are 0 or 1.
totalflea(n + 1) = sum(fv);
endfor
%The following lines are there to depict two standard deviations away
%from the mean value of 25. The standard deviation of a discrete binomial
%variable is found in "Introduction to Probability" by Bertsekas and
%Tsitsiklis. The 2 SD barrier is as follows:
sdp = ones(1, N + 1)*(25 + 2*sqrt(50)/2);
sdm = ones(1, N + 1)*(25 - 2*sqrt(50)/2);
plot (Nvector, totalflea, Nvector, sdp , "1", Nvector, sdm, "1");
% "1" is supplied as an optional argument to determine the color 
%of the graph.
xlabel('Time Steps')
ylabel('Fleas on Anik')
xrange 
endfunction

这很好用,但是当我在文件末尾附加 fleas(500) 行时,我得到一个解析错误。当我在文件开头添加它时,出现以下错误:

warning: function 'fleas' defined within script file '/home/ongun/Desktop/Dropbox/Computational Physics/Codes/fleas.m'
error: invalid use of script /home/ongun/Desktop/Dropbox/Computational Physics/Codes/fleas.m in index expression
4

1 回答 1

5

在 octave 中,您可以创建函数文件或脚本文件。我将简化一点:

为每个函数创建一个同名文件。开始于function ...结束于endfunction

如果要调用函数,可以使用命令行或创建脚本文件。脚本文件不包含任何函数定义,只需编写您要执行的命令。

因此,您必须创建第二个文件,其中包含fleas(500)或从命令行调用它。

于 2013-10-17T23:10:21.817 回答