Parse error at ')'when plotting surface plot

2 vues (au cours des 30 derniers jours)
Eric Yeh
Eric Yeh le 3 Mar 2019
Hey, I'm trying to plot the surface plot z=(x^2-ycos(x))/sqrt(x^2+y^2)
Everytime I try to run the program though, it keeps coming up with the error: "parse error at ')': usage might be invalid Matlab syntax" after the cos(x.) in the equation. Any help would be much apreciated :)
x=-5:.1:5;y=x;[x,y]=meshgrid(x,y);
z = (x.^2-y.*cos(x.))/sqrt(x.^2+y.^2);
surfc(z)
xlabel('x axis')
ylabel('y axis')

Réponse acceptée

Walter Roberson
Walter Roberson le 3 Mar 2019
Modifié(e) : Walter Roberson le 3 Mar 2019
In MATLAB, periods in source code must be in one of the following contexts:
  1. in a comment
  2. in a single-quoted string
  3. in a double-quoted string (R2017a and later)
  4. proceeded by a numeric digit, such as 35.
  5. followed by a numeric digit, such as .35
  6. followed immediately by * or ^ or / such as 3.*5 or 3.^5 or 3./5
  7. between two variable names, or two parts of a package name, indicating structure access or property access or method invocation, such as MyStruct.field7 or matlab.lang.makevalidname
  8. after a variable name but before a ( indicating dynamic field access, such as MyStruct.(fn{3})
In your expression cos(x.) this is not any of the cases.
MATLAB does not permit abbreviating floating point 0 as just plain . requiring instead 0 or 0. or .0 . And if it did accept plain . as 0, it would still be an error to have written cos(x 0) without an operator between the x and the zero.
  2 commentaires
Eric Yeh
Eric Yeh le 3 Mar 2019
Thanks for the help!
My professor said that having the variable as x. allows matlab to treat it as a vector.
However, when I try using it as x.0 or x.^1, it comes up with the error that there are missing ')' or a warning that "the matrix is singular to working precision". When I try to plot the latter scenario, nothing comes up in the figure.
Would you have any ideas on how to write out the equation with proper syntax and be plotted?
Walter Roberson
Walter Roberson le 4 Mar 2019
Use ./ instead of /

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by