Right array division with a vector

조회 수: 4 (최근 30일)
Harel Harel Shattenstein
Harel Harel Shattenstein 2018년 3월 25일
편집: John D'Errico 2018년 3월 25일
Why
1./1:1:10
return error
and
1./(1:1:10)
Does not?
Should not 1:1:10 return a vector?

채택된 답변

John D'Errico
John D'Errico 2018년 3월 25일
편집: John D'Errico 2018년 3월 25일
Works for me.
1./1:1:10
ans =
1 2 3 4 5 6 7 8 9 10
What error do you think it produces?
Let me guess. it did not produce an error. It just produces something you did not expect to see.
Division is higher in the operator precedence list than colon.
So MATLAB computes 1./1, which happens to be 1. Then it generates the vector 1:1:10. Effectively, MATLAB sees this as
(1./1):1:10
When you change it by putting parens around the colon call, it does that FIRST, then divides those elements into 1.
So really, this is just a question of understanding operator precedence.
https://www.mathworks.com/help/matlab/matlab_prog/operator-precedence.html
If colon was higher in the list, then you would get the same answer with or without the parens.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by