/ / Matlab Parsing Error [duplicate] - matlab, analyse, variables, octave

Erreur d'analyse Matlab [dupliquer] - matlab, analyse, variables, octave

Vous trouverez ci-dessous le code MATLAB que j'essaie d'utiliser. Toutefois, je ne dispose que d'une copie d'OCTAVE (et certaines fonctions ne sont pas traduites en octave).

Je reçois une erreur d'analyse, en particulier:

ERREUR:

Parser error near line 4
Syntax error [~,ix] = sort(S1);

Pour le code ci-dessous ...

function OUT = merge_two_solutions(S1,S2,w1,w2,vis)
if ~exist("w1","var"),w1=.5;w2=.5;end
ref = (1:length(S1));
[~,ix] = sort(S1);
S1n = S1; S1n(ix) = ref;
[~,ix] = sort(S2);
S2n = S2; S2n(ix) = ref;
OUT = w1*S1n+w2*S2n;
if exist("vis","var")
clf;plot(S1n,S2n,".b");
end

Toute idée serait appréciée.

Réponses:

1 pour la réponse № 1

Vous utilisez une ancienne version d’Octave qui ne prend pas en charge ~ pour le renvoi valeur-retour. Vous devez mettre à niveau votre version d'octave à la version 3.4.0 au moins (publiée il y a plus de 2 ans) pour cette fonctionnalité. Vous pouvez également contourner ce problème avec:

% don"t care for value of TMP
[ TMP, ix ] = sort(S1);
...
[ TMP, ix ] = sort(S2);

Vous devez utiliser une octave de la série 3.2.X ou une version antérieure. Notez qu’il ya eu 8 versions depuis (2 majeures et 6 mineures. Et une autre version majeure est prévue pour cet été).