2016-01-23 3 views
0

Почему это действительный запрос MATLAB?Почему несколько бинарных операторов в строке работают в MATLAB?

3++4 

который оценивается в 7. Еще более тревожным:

3+-5 

вычисляет -2.

Учитывая следующее, я ожидал

3+*5 

оценить до 15. Вместо этого он выдает ошибку.

Возможное разрешение связано с ответом thewaywewalk на мой предыдущий вопрос на Why is a trailing comma in a cell array valid Matlab syntax?

+0

'3 ++++ - ++ 5' оценивает -2. Угадайте '' ''сильнее', чем' + '? Weird ... – chessofnerd

+3

Унарный '-' отрицает значение, а унарный' + 'просто возвращает исходное значение (например, умножение на -1 и 1 соответственно) – tmpearce

ответ

4

+ и - не только бинарные операторы, они также являются унарные операторы.

Документация:

http://de.mathworks.com/help/matlab/ref/uplus.html http://de.mathworks.com/help/matlab/ref/uminus.html

По этим причинам, первые две строки оцениваются как 3+(+4) и 3+(-5) но последний не может, потому что не унарный умножения не существует.

Смежные вопросы