2017-05-10 14 views
2

コードでバグを追いかけて1時間以上過ごしてしまい、精度のエラーが発生しました。私の方程式の1つでは、要素ごとに2つのベクトルを分けることを忘れていました。私は./の代わりに/と書いていた。通常、Matlabはこれらの場合にエラーを返します。 .*の代わりに*という2つのベクトルを乗算しようとすると、しかし、この場合、スカラー値を返すのはうれしいことです!これは起こるはずですか?この価値には何らかの意味がありますか?例えばMatlabの要素のないベクトル分割はスカラーを返します!それは何ですか?

x = 0 : 0.01 : 1; 
y = x/exp(x); 

セットy=0.3132

答えて

2

はい、これは起こりそうです。あなたはmatrix right division operator /を使用して、この特定のケースでは、最小二乗意味では以下の式のシステムを解くyのスカラー値が見つかりました:

y*exp(x) = x; 
+0

ありがとうございました。非常に誤りがちで不幸な構文のようです。 – MGA

+0

@MGA:そんな風に見えるかもしれませんが、それは非常に意図しています。 [配列と行列の操作](https://www.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html)の違いに慣れていなければなりません:要素ごとにドット表記法線形代数演算ではドットなし。 – gnovice

関連する問題