Hi,
I m trying to enter some new functions in my program and i keep getting "Parse error at x : usage might be invalid MATLABsyntax" when defining functions.
This one is an example i don t know what is wrong with it but it won't work
f = (@x) x+2
"invalid expression. Check for missing multipication operator..."
Can some of you help me please?

 Réponse acceptée

Dyuman Joshi
Dyuman Joshi le 22 Fév 2024
The left parenthesis is supposed to be after the '@' symbol -
f = @(x) x +2
f = function_handle with value:
@(x)x+2
f(3)
ans = 5
The general syntax is
name_of_function = @(independent_variables_separated_by_comma) relation_of_independent_variables
%e.g - function of 3 independent variables
g = @(x,y,z) x + y.*z
%same can be written as
G = @(X,Y,Z) X + Y.*Z
For more information, check out the following documentation pages - Function Handle

5 commentaires

Grégoire
Grégoire le 22 Fév 2024
oh right !
Thanks you :)
Dyuman Joshi
Dyuman Joshi le 22 Fév 2024
You're welcome!
Grégoire
Grégoire le 22 Fév 2024
Modifié(e) : Grégoire le 22 Fév 2024
Sorry to bother again
I am getting the same type of error again even with the parenthesis right
g1 = @(x) 2/((14x-7).^(6/7))
"A '(' might be missing a closing ')', causing an invalid syntax at 'x'
I've checked my code and every () is closed...
any idea please ?
Dyuman Joshi
Dyuman Joshi le 22 Fév 2024
You forgot to include the multiplication sign between 14 and x.
Note that MATLAB does not support implied multiplication, you have to specify the symbol.
Grégoire
Grégoire le 22 Fév 2024
Okay noted,
thanks a lot for the help :)

Connectez-vous pour commenter.

Plus de réponses (1)

Abhinay
Abhinay le 22 Fév 2024
Modifié(e) : Abhinay le 22 Fév 2024

0 votes

I understand that you are getting an error "Parse error at x : usage might be invalid MATLABsyntax" when defining functions when you are trying to enter some new functions in your program.
The error you're seeing is because of a small mistake in the way you've written your function. To fix it, just remove the space between `@` and `(x)`. Here's how it should look:
f = @(x) x + 2;
Use this corrected line in your program, and it should work without the "Parse error".

Produits

Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by