calling a function n times
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
say I have a function called myfun which has no arguments but returns a number, and I call it and assign the value to 'y', like
y=myfun()
now say I want to call it 'n' times to get a vector 'y' with 'k' entries. Ive tried
k=(1:10);
y(k)=myfun();
but this does not work, what do I do?
p.s. my exact function code is
function [critical_region] = rubbish()
Y=sort(randn(50000,100));
Z=zscore(Y);
n = size(Y,1);
j = 1:n;
result = -n-(1/n)*sum(bsxfun(@times,j.'*2-1, log(normcdf(Z,0,1))+log(1-normcdf(Z(end:-1:1,:),0,1))));
critical_region = prctile(result,[85, 90, 95, 97.5, 99]);
0 Kommentare
Antworten (2)
Walter Roberson
am 3 Sep. 2011
for k=1:10
y(k) = myfun();
end
2 Kommentare
Walter Roberson
am 3 Sep. 2011
Your initial description said that the function returns a number, but it does not: it returns a vector of numbers. Adjusting for that, and with the premise that it will always return the same number of elements:
for k=1:10
y(k,:) = myfun();
end
Andrei Bobrov
am 3 Sep. 2011
function critical_region = yourfun
Y=sort(randn(500,10));
Z=zscore(Y);
q=size(Y);
result = -q(1)-(1:2:q(1)*2)*(log(normcdf(Z,0,1))+log(1-normcdf(Z(q(1):-1:1,:),0,1)))/q(1);
critical_region = prctile(result,[85, 90, 95, 97.5, 99]);
end
for i1 = 10:-1:1
y(i1,:) = yourfun;
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Performance and Memory finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!