Info

この質問は閉じられています。 編集または回答するには再度開いてください。

How to stop the engine from incorrectly interpreting my code

1 回表示 (過去 30 日間)
Chris Wolf
Chris Wolf 2017 年 8 月 18 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I switched from 2014b to 2016b, and I've noticed some odd behavior in the newer version. You can try to do something that is mathematically nonsensical, and the engine will find a way to change your request into something tractable. For example, you can add a row vector to a column vector. The engine automatically applied 'meshgrid' to your vectors and then does the addition.
(1:10) + (1:10)'
This is intractable and nonsense. Older matlab versions would throw an error. As they should, right?
This led to some long debugging. Instead of throwing an error, which would point me to my coding error, it happily came up with a nonsense answer and continued the program execution.
Is there a way to turn off this 'user interpreting' feature? I'd much prefer matlab just executes the code I write, and throws an error if I do something wrong.
  1 件のコメント
Stephen23
Stephen23 2017 年 8 月 19 日
+1 "This is intractable and nonsense"

回答 (1 件)

Walter Roberson
Walter Roberson 2017 年 8 月 18 日
There is no way to turn off this feature, which is new in R2016b. Binary operations between vectors now mostly operate as if bsxfun() had been used.
The feature can be useful when deliberately used, but it can also make debugging difficult.
  2 件のコメント
Chris Wolf
Chris Wolf 2017 年 8 月 18 日
Thanks for a quick answer. Bummer you can't turn it off.
Chris Wolf
Chris Wolf 2017 年 8 月 18 日
編集済み: Walter Roberson 2017 年 8 月 18 日

この質問は閉じられています。

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by