Line number in code

7 visualizaciones (últimos 30 días)
Tyto
Tyto el 7 de Abr. de 2022
Comentada: Tyto el 7 de Abr. de 2022
Is there a way of identifying the number of the line of code where one outputs (e.g. fprintf) a message?
For example, suppose I want to identify where in my code a particular "break" statement is executed:
fprintf('\t\t(2000) function_X:\t**** Break out ****\n');
I might have other such statements:
fprintf('\t\t(2903) function_X:\t**** Break out ****\n');
Can I automate the line nos. "2000" & "2903" to something dynamic such as:
fprintf('\t\t(<line no>) function_F:\t**** Break out ****\n');
This would allow me to enter or delete lines of code without having to search for and bring up-to-date the line nos. in the fprintf statements.
  1 comentario
Marcel Kreuzberg
Marcel Kreuzberg el 7 de Abr. de 2022
maybe it is possible using matlab commands: error or warning

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 7 de Abr. de 2022
Editada: Stephen23 el 7 de Abr. de 2022
mytest()
9 hello 11 world
function mytest()
%
A = 1;
B = 2;
%
F = @(s)s(1); % helper function
%
fprintf('%3u %s\n',F(dbstack()).line, 'hello')
%
fprintf('%3u %s\n',F(dbstack()).line, 'world')
end
Note that in this case the file line numbers also includes the line where the function is called: this is because this forum creates a script from all of the code and runs that. The line numbers are for the entire file (script, in the case of this forum).
Note that runt-ime code introspection (such as calling DBSTACK) is slow: if you are just doing this a few times that might be acceptable. See: https://www.mathworks.com/help/matlab/matlab_prog/techniques-for-improving-performance.html#buwj1nn

Más respuestas (0)

Categorías

Más información sobre Entering Commands en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by