2016-08-16 7 views
1
「大きすぎてメモリ枯渇または要求されたサイズ」エラーを

プロット。は、私はオクターブを使用して<code>sin(x)</code>グラフを描きたい場合は、私は</p> <pre><code>x = -6:0.1:6; plot (x, sin(x)); </code></pre> <p>を行うだろうし、この作品

私はので、私は

x = -6:0.1:6; 
plot (x, 1/(1+exp(-x))); 

を試してみましたシグモイド関数を描きたかった。しかし、これは私に

error: memory exhausted or requested size too large for range of Octave's index type -- trying to return to prompt 

を与え、私はx = -4:0.2:4;と試み、今回は何

error: invalid conversion of NDArray to Matrix 
error: evaluating argument list element number 2 

を得ました問題?

+0

てみてください'plot(x、1 ./(1 + exp(-x))); ' –

+0

Hmm。できます。ポイントは何ですか?実数1(1。)を使用していますか?ああ、私は今、要素の賢明な部門を参照してください。 –

答えて

1

問題は​​です。 MATLABは、スローエラーは次のとおりです。

Error using/
Matrix dimensions must agree. 

Octaveがで失敗Carandraug's commentあたりとして:あなたが欲しい

operator /: nonconformant arguments (op1 is 1x1, op2 is 1x121) 

(ドットに注意)elementwise divisionです:

x = -6:0.1:6; 
plot (x, 1./(1+exp(-x))); 

enter image description here

+0

私は要素が賢明なドット演算子は、混乱が発生する可能性がある場合のみ必要です参照してください。 (除算、乗算など)。ありがとう。 –

+1

@ChanKim '+'、 'exp'、' sin'などはすでに要素賢明に実行されています(それらの文書をチェックしてください)。 '/'と '*'は*行列演算子*として動作するので、明示的に要素の賢明さを伝える必要があります。 – Adriaan

+2

実際、Octaveは 'operator /:不一致の引数(op1は1x1、op2は1x121)'でその操作に失敗し、ブロードキャストも行いません。 OPエラーはおそらく他の場所から来ているので、Octaveでコードを再現することはできません(私はOctave 3.8、4.0、および未リリースの4.1を試しました)。 – carandraug

関連する問題

 関連する問題