MATLAB Answers

Is this a bug? And if not, why it is defined like that

5 views (last 30 days)
Hussein Ammar
Hussein Ammar on 5 Jun 2019
Commented: KALYAN ACHARJYA on 5 Jun 2019
Hello all,
I was wondering why this should happen:
clear all
N = 10;
Q = 9;
K = 50;
K *(2 + floor(1/N))
>Output:
Error: File: Untitled6.m Line: 6 Column: 1
"K" was previously used as a variable, conflicting with its use here as the name of a function or command.
See "How MATLAB Recognizes Command Syntax" in the MATLAB documentation for details.
I don't have a defined function named K, and as far as I know there is no defined function named K in matlab, right? it is a constant here. So, why Matlab does not access the current workspace and path to determine whether K is a function or variable.
While for example the next example works fine, why the space after K in the previous form is causing a problem?
clear all
N = 10;
Q = 9;
K = 50;
K*(2 + floor(1/N))
K * (2 + floor(1/N))
K* (2 + floor(1/N))

Answers (1)

Stephen Cobeldick
Stephen Cobeldick on 5 Jun 2019
Edited: Stephen Cobeldick on 5 Jun 2019
"Is this a bug?"
Not according to the MATLAB documentation:
"Space after an identifier, but not after a potential operator, implies a function call using command syntax. For example:"
ls ./d
"Therefore, the potentially ambiguous statement ls ./d is a call to the ls function using command syntax."

Community Treasure Hunt

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

Start Hunting!