Ich verwende den CodeGrenzwertumfang Scilab Variablen
clc;
clear;
getd();
a=1;
b=myFunction();
, wo myFunction
durch
function b=myFunction()
b=a+1;
endfunction
. Aus irgendeinem seltsamen Grund funktioniert das in Scilab gut. Ich glaube, myFunction
erbt einfach a
von der Hauptfunktion. Dies steht im Gegensatz zu beispielsweise Matlab, wo a
ein Eingabeargument von myFunction
sein muss, um es zu verwenden.
Ich möchte Funktionen in Scilab nur mit lokalen Variablen und Variablen als Eingabe, wie in Matlab. Damit wird in diesem Fall a
nicht von der Hauptfunktion übernommen.
Wie kann ich das erreichen?
So funktioniert [variable scope] (https://wiki.scilab.org/howto/global%20and%20local%20variables) in Scilab. Um das zu ändern, können Sie den Scilab-Quellcode herunterladen, seine Engine neu schreiben und kompilieren. – FTP
Aber warum willst du das erreichen? Wenn Sie korrekte Funktionsdefinitionen schreiben, d. H. ** all ** Ihre Eingabevariablen als Argumente in der Klammer definieren und Ihre Funktion mit der richtigen Anzahl von Eingabeargumenten aufrufen, vermischt Scilab Ihre lokalen und globalen Variablen nicht. In Ihrer Funktion können Sie sogar überprüfen, ob eine ausreichende Eingabe mit 'varargin' erfolgt. – Attila