2
A
答えて
3
Do not do this!コードはMATLABとOctaveの両方で有効ですが、動作は大きく異なります。
MATLAB:
あなたが持っているコードは、実際に有効 MATLABコードです。しかし、それはあなたが期待することをしません。
多くの言語では、++k
は、増分k
を意味し、それを返します。 MATLABでは、++k
はk
とまったく同じです。これは、MATLABでは3 == +3 == ++3 == +++++++3
です。 --k
も同様です。これは--k == -(-k) == +k == k
です。同様に、多くの言語でk++
はk
を返し、それをインクリメントします。しかし、MATLABでは、k++
とk--
は無効な構文であり、構文エラーが発生します。
print_factor(p(k), p(k));
テストp
とprint_factor
のための2つの例示的な機能を持つMATLABでコード:
p = @(x) 2*x;
print_factor = @(x,y)disp([x,y]);
k = 2;
print_factor(p(++k), p(--k));
4 4
k
k =
2
オクターブ:
コードは(MATLABで)と等価ですOctaveでは、演算子が定義され、左から右に評価されますが、私は0123とは思わないインクリメント演算子に関するは、これについて何か言います。 C++のように、プラットフォームに依存する可能性があります。しかし、他の式が評価されるのと同じように解釈される可能性があります。下の例を参照してください。
オンラインでhereをテストできます。
オクターブでまったく同じコードは:ダンとして
p = @(x) 2*x;
print_factor = @(x,y)disp([x,y]);
k = 2;
print_factor(p(++k), p(--k));
6 4
k
k = 2
print_factor(p(++k), p(++k));
6 8
k
k = 4
のコメント:MATLAB構文は良いアイデアではありません従わないオクターブ内のコードを書きます。 MATLABで実行したい場合に備えて、書き直す必要があります。
関連する問題
- 1. MATLAB積分関数の評価数
- 2. Matlab - 文字列から関数を評価する
- 3. matlab関数の評価を避ける
- 4. Matlabの評価と操作関数
- 5. Matlab - arrayfunでネストされた匿名関数を評価する
- 6. JavaScriptには、関数パラメータの定義済みの評価順序がありますか?
- 7. これはなぜ、左結合はクロス結合に評価されますか?
- 8. C#には、左から右の評価順に従わない文がありますか?
- 9. C#Elvis Operator - パラメータは評価されますか?
- 10. MATLABの非同期関数評価からワーカーインデックスを取得する
- 11. 評価値はいつ評価されますか?
- 12. 評価関数
- 13. シーケンスは、左から右の評価順の言語を指していますか?
- 14. 評価順*
- 15. 評価順
- 16. 関数名はRの凡例のテキストとして評価されますか?
- 17. casperjs評価関数にパラメータ/変数を渡す方法
- 18. スウィフトのオプションチェーンは、左から右にゆっくりと評価されますか?
- 19. 関数アプリケーションの評価順序はSMLで決定的ですか?
- 20. C++評価の順
- 21. cataMの評価順
- 22. Mathematica:ブラックボックス関数の数値最適化時の評価順序
- 23. Clojureの関数引数の評価順序
- 24. Matlabのベクトルで超幾何関数を評価する
- 25. 関数の値がラムダ関数に渡されて評価されないのはなぜですか?
- 26. CasperJSの評価で関数にパラメータを渡す
- 27. 名前付き関数はJavaScriptで過小評価されていますか?
- 28. MATLAB - 評価関数と多くのプロットの印刷
- 29. 数学関数を文字列から評価する
- 30. ネストされた期待()関数は評価しません
'x ++'は、MATLABでは無効な構文です。 –
これはMATLABの構文ではありません。私はOctaveで使用することをお勧めします。本当の意味でMATLABとの互換性を失うことになります。 – Dan