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

1 visualización (últimos 30 días)
Hussein Ammar
Hussein Ammar el 5 de Jun. de 2019
Comentada: KALYAN ACHARJYA el 5 de Jun. de 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))
  2 comentarios
KALYAN ACHARJYA
KALYAN ACHARJYA el 5 de Jun. de 2019
No issue, when I tried
kk.png
KALYAN ACHARJYA
KALYAN ACHARJYA el 5 de Jun. de 2019
Oh I got the point Thanks @Stephen

Iniciar sesión para comentar.

Respuestas (1)

Stephen23
Stephen23 el 5 de Jun. de 2019
Editada: Stephen23 el 5 de Jun. de 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."

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by