Ich verstehe nicht, warum dieser Fehler kommt und ich brate mein Gehirn, aber kann es nicht finden. Der Fehler lautet: subscript indices must be either positive integers less than 2^31 or logicals
aufgerufen aus Zeile 51 Spalte 12, ich werde es im folgenden Code markieren.Kann nicht herausfinden, meine Syntaxfehler in Oktav Skript
Ich sehe nicht, warum mein Code interpretiert, dass ich xintv4
als einen Index verwende. f2
ist eine Funktion und ich rufe es eine Reihe von x-Werte zu bewerten ...
f2 [email protected](x) x.^2 .* e.^(-x).*sin(pi.*x);
a4 = -1;
b4 = 1;
c4 = 0.84685;
for N4 = [10]#, 100, 1000, 10000]
disp("");
B = 1;
for p4 = 1:2
xintv4 = rand(1,N4)*2-1;
yintv4 = rand(1,N4)+c4;
f2 = f2(xintv4)+c4; #error points to this line at the "=" sign
nf4 = 0;
nf4count = 0;
nf4 = f2./yintv4;
for k = 1:N4
if nf4(k) >= 1
nf4count += 1;
else
nf4count += 0;
end
endfor
#disp("nf:");disp(nf);
#disp("nfcount:");disp(nfcount);
I4(p4) = ((B+c4)*(b4-a4)*(nf4count/N4))-(c4*(b4-a4));
endfor
meanI4 = mean(I4);
stdevI4 = std(I4);
disp("N = "); disp(N4);
disp("Mean of the integral using method 2:");disp(meanI4);
disp("Standard deviation of the integral using method 2:");disp(stdevI4);
endfor
Ich habe versucht, das Spiel mit dem for p4 = 1:2
, indem es for p4 = 1
ändern und dies gearbeitet, aber ich Pausen, wenn ich erhöhen die Schleife zu 2,3 oder 4 (etc).
Hinzugefügt das MATLAB-Tag, weil sie ähnliche Sprachen sind.
Minimal Debugging-Methode: test 'f2 (xintv4)' nach dem Fehler, dann nur 'f2' ... – ederag