Syntax error when dividing by a matrix variable
6 次查看(过去 30 天)
显示 更早的评论
I keep getting an error with this line of code:
q=(R*sin(theta))./(1-cos(theta)*cos(t).);
R and theta are constants. t is given by the following
N = 100
dt = 2*pi/N;
t=(0:dt:2*pi)';
Since t contains a matrix of values, I thought the correct way to include this was through cos(t)., but Matlab keeps throwing up the following error:
"Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters."
If I just use cos(t) [without the period], then there is no error but all of the values of q in the resulting matrix are identical. I don't understand what I am doing wrong.
2 个评论
Stephen23
2025-11-18
"Syntax error when dividing by a matrix variable"
That error is unrelated to any division operator.
"Since t contains a matrix of values, I thought the correct way to include this was through cos(t)., but Matlab keeps throwing up the following error"
The documentation for https://www.mathworks.com/help/matlab/ref/double.cos.html does not mention dots anywhere. It states that it accepts one "Input angle in radians, specified as a scalar, vector, matrix, multidimensional array, table, or timetable". So cos() already accepts a vector.
"If I just use cos(t) [without the period], then there is no error but all of the values of q in the resulting matrix are identical."
Lets try it:
theta = 1;
R = 1;
N = 100;
dt = 2*pi/N;
t = (0:dt:2*pi)';
q = (R*sin(theta))./(1-cos(theta)*cos(t))
They look different to me.
Walter Roberson
2025-11-18
You have mistaken the purpose of the dot in expressions such as A./B . It is not (A.) / B with . being some operator. Instead, it is an operator named ./ just the same way as ~= and <= are the names of single operators.
采纳的回答
Star Strider
2025-11-17
The additional period (or decimal point) may be confusing the interpreter.
q=(R*sin(theta))./(1-cos(theta)*cos(t).);
^
That error is only thrown with the dot present, not otherwise.
q=(R*sin(theta))./(1-cos(theta)*cos(t));
q=(R*sin(theta))./(1-cos(theta)*cos(t).);
.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!