[.cfg] file format
[.cfg] files are human-readable text files containing fieldname/fieldvalue pairs using the syntax:
#fieldname
fieldvalue1
fieldvalue2
etc....
Field names are entered following the character #
They can only include letters/numbers and cannot start with a number (e.g. #variable01)
Field names can also contain multiple levels separated by the dot character (e.g. #denoising.filter). Multiple levels will be interpreted as structure fields/subfields
Field values can be numeric (entered as arrays or two-dimensional matrices) or alphanumeric (interpreted as lists / cell-arrays separated by newline characters)
Comments can be included following the character %
Example .cfg file contents:
% a single value
#pi 3.14159265
% a 2D matrix
#hadamard
1 1 1 1
1 -1 1 -1
1 1 -1 -1
1 -1 -1 1
% a single string
#phrase
hello world
% two strings
#files
/disk/file1
/disk/file2
% a structure
#disk.name large
#disk.number 3
#disk.avail 1/2
[.cfg] files can be read in Matlab using the function conn_loadcfgfile. For example:
>> data = conn_loadcfgfile('example.cfg')
data =
struct with fields:
pi: 3.1416
hadamard: [4×4 double]
phrase: {'hello world'}
files: {2×1 cell}
disk: [1×1 struct]
They can also be created from a Matlab structure using the function conn_savecfgfile. For example:
>> conn_savecfgfile('example2.cfg', data);
#pi
3.1416
#hadamard
1 1 1 1
1 -1 1 -1
1 1 -1 -1
1 -1 -1 1
#phrase
hello world
#files
/disk/file1
/disk/file2
#disk.name
large
#disk.number
3
#disk.avail
0.5
Last, they can also be exported to [.json] file format using the syntax:
>> spm_jsonwrite('example2.json', data);
{
"pi": 3.14159265,
"hadamard": [[1,1,1,1],[1,-1,1,-1],[1,1,-1,-1],[1,-1,-1,1]],
"phrase": ["hello world"],
"files": [
"/disk/file1",
"/disk/file2"
],
"disk": {
"name": ["large"],
"number": 3,
"avail": 0.5
}
}