Line number in code

7 visualizzazioni (ultimi 30 giorni)
Tyto
Tyto il 7 Apr 2022
Commentato: Tyto il 7 Apr 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 Commento
Marcel Kreuzberg
Marcel Kreuzberg il 7 Apr 2022
maybe it is possible using matlab commands: error or warning

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 7 Apr 2022
Modificato: Stephen23 il 7 Apr 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

Più risposte (0)

Categorie

Scopri di più su Entering Commands in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by