File Exchange

image thumbnail

sloc

version 1.0.0.0 (2.36 KB) by Raymond Norris
Count lines of source code for an M-file

30 Downloads

Updated 09 Mar 2006

View License

Counts the lines of source code in an M-file.

A line of source code is defined to be not a comment line, not a continuation of a previous line, and not an empty line.

The function line is included. SLOC returns the line count for the entire file, not for individual functions of a file.

If more than more statement is on the same line, that it treated as one line. For example, the line:

minx = 32; maxx = 100;

is one line of source code.

Comments and Ratings (12)

dm b

Dimitrios

Mike

David Roberts

I created a function slocDir that uses this file to give sloc totals for each folder in a directory tree. Kind of confusing that there are two files out there slocdir & slocDir which seem to do the same thing. slocDir was submitted to Matlab Central a few weeks before slocdir.

Diffy D

I made a little script to list all the .m recursively and count the number of lines with sloc, you can fount it at : http://www.mathworks.com/matlabcentral/fileexchange/24000

Bye

Dionisio Arcano

Gregory Wunder

I have already developed a similar program. God Bless!

Jiro Doke

Good how you incorporated multi-line codes continued by <...>. But some commands can have multiple lines without <...>, such as mutli-row matrix definition. But I guess this will be hard to detect.

Andrej Mosat

I`d add:
line 32: file=deblank(file);
or similar, because:
files=ls('*.m')
returns a char array with spaces at the end.
after:
count=count+sloc(files(i,:))
error occurs: 'xyz.m .m' cannot be found
But spaces in the middle of file would need a regexp.

Andrej Mosat

Cool, I`d expect one more thing: to count all the lines for *.m files in the current directory recursively. Thanx, no rating yet.

Updates

1.0.0.0

Bug fixes:
(1) The MATLAB Profiler does not include the "function" line in it's metrics, so do not count the "function" line or any "function" lines for subfunctions. (2) Also, functions (particulary nested) may be indented, so minor fix for that.

Updated to support R14, specifically for block comments ( {%...}% )

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.


Learn About Live Editor