2
A
回答
3
不要這樣做!該代碼在MATLAB和Octave中均有效,但行爲非常不同。
MATLAB:
你的代碼實際上是有效 MATLAB代碼。但是,它不符合你的期望。
在很多語言中,++k
的意思是增加k
並返回它。在MATLAB中,++k
與k
相同,因爲在MATLAB中:3 == +3 == ++3 == +++++++3
。 --k
也是如此。這是--k == -(-k) == +k == k
。同樣,在很多語言中,k++
意味着返回k
,然後增加它。然而,在MATLAB中,k++
和k--
無效語法並導致語法錯誤。
您的代碼(在MATLAB)等效於:
print_factor(p(k), p(k));
測試的代碼中MATLAB具有兩個示例功能p
和print_factor
:
p = @(x) 2*x;
print_factor = @(x,y)disp([x,y]);
k = 2;
print_factor(p(++k), p(--k));
4 4
k
k =
2
八度:
在Octave中,操作符被定義,並從左向右評估,但我不認爲official documentation關於增量運算符說什麼關於這個。它可能與平臺有關,就像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. Javascript - 再次評估參數
- 3. Haskell函數從左到右
- 4. 使用參考參數評估函數
- 5. 在matlab中評估函數的值
- 6. 在MATLAB中評估和繪製函數
- 7. c函數參數評估和傳遞
- 8. 匿名函數的力參數評估
- 9. 評估MATLAB二次型rBform
- 10. 從右到左讀的參數
- 11. Bootstrap 4從左至右依次展開
- 12. 從字符串評估數學函數
- 13. 數學從左到右
- 14. 從評估的JS獲取函數名稱及其參數Rhino
- 15. 如何從左到右和從右到左遍歷數組?
- 16. 在R中評估函數之前將函數改爲參數?
- 17. matlab積分函數中的評估計數
- 18. 如何在matlab中評估函數的導數?
- 19. 評估參數宏觀
- 20. javascript如何評估參數?
- 21. Minimax的評估函數是啓發式函數嗎?
- 22. 停止VBA從調用目標函數兩次進行評估
- 23. 爲什麼Sizzle會從右向左評估選擇器?
- 24. 從右到左填充評級欄星星從右到左xml佈局
- 25. 評估函數在Python
- 26. eval函數 - 評估順序
- 27. Python保存評估函數
- 28. 函數的條件評估
- 29. C++中的「評估函數」
- 30. 使用Matlab評估積分數字
'x ++'在MATLAB中是無效的語法。 –
這不是MATLAB的語法,我建議不要在Octave中使用它,因爲你會殺死MATLAB的兼容性而沒有真正的優勢。 – Dan