0

以下は私が使用しようとしている MATLAB コードですが、OCTAVE のコピーしか持っていません (一部の関数は Octave に変換されません)。

具体的には、パーサー エラーが発生します。

エラー:

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

以下のコードの場合...

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

どんなアイデアでも大歓迎です。

4

1 に答える 1

1

~戻り値の却下をサポートしていない古いバージョンの Octave を使用しています。その機能を使用するには、オクターブのバージョンを少なくとも 3.4.0 (2 年以上前にリリースされたもの) にアップグレードする必要があります。または、次の方法で回避できます。

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

3.2.X シリーズまたはそれ以前の Octave を使用する必要があります。それ以来、8 回のリリースが行われていることに注意してください (メジャー 2 回とマイナー 6 回。また、今年の夏には別のメジャー リリースが計画されています)。

于 2013-06-22T21:01:54.637 に答える