anropa funktion en till gång i en funktion
Hejsan!
Låt oss säga att jag har en funktion och jag vill anropa den igen med ett annat värde i koden.
function y = berakna(x)
y = (x.^2) +4x;
t = berakna(30)-berakna(15)
end
När jag försöker i mitt fall lägga till ett anrop av funktionen i koden så får jag :
Out of memory. The likely cause is an infinite recursion within the program.
Error in integralCalc/iterateScalarValued
[t,w] = u(x); % Transform back to the original domain.
Går det att skriva det på något annat sätt ?
Flytta raden med t utanför funktionen.
function y = berakna(x)
y = (x.^2) +4x;
end
t = berakna(30)-berakna(15)
Dr. G skrev:Flytta raden med t utanför funktionen.
function y = berakna(x)
y = (x.^2) +4x;
end
t = berakna(30)-berakna(15)
Jag testade det och fick detta felmeddelande;
Error: File: berakna.m Line: 8 Column: 4
This statement is not inside any function.
(It follows the END that terminates the definition of the function "berakna".)
y-raden saknar ett multiplikationstecken och bör vara
y = (x.^2) +4*x;
Det kan möjligtvis generera problem om din .m-fil har samma namn som funktionen. Prova att anropa funktionen från en annan fil. (Ta bort t-raden och lägg in den i en ny fil.)
Dr. G skrev:y-raden saknar ett multiplikationstecken och bör vara
y = (x.^2) +4*x;
Det kan möjligtvis generera problem om din .m-fil har samma namn som funktionen. Prova att anropa funktionen från en annan fil. (Ta bort t-raden och lägg in den i en ny fil.)
Går det inte att anropa samma funktion i samma skript ?
Jo, byt namn på antingen funktionen eller .m-filen så bör det gå.
I länken nedan så går det (i Octave).
https://rextester.com/NDE83946
Dr. G skrev:Jo, byt namn på antingen funktionen eller .m-filen så bör det gå.
I länken nedan så går det (i Octave).
https://rextester.com/NDE83946
Tack för länken och ser att det fungerar där men inte på matlab. Det är tänkt at jag ska göra båda på samma script och inte behöva byta namnet på funktionen egentligen.
I gamla versioner av matlab så var man tvungen att ha funktioner i separata filer (med undantag från anonyma funktioner). Det är dock fixat sedan ett tag tillbaka.
Eftersom jag inte har tillgång till matlab nu så kan jag inte testa vad som fungerar och inte.
Har du provat att byta namn på funktionen och/eller .m-filen?