Loadwave /B flag does not work correctly with /L flag for matrices

rwashenfelder
Posts: 10
Joined: 2016-03-28
Location: United States

If you use the /L flag to specify the portion of a matrix to load, then the /B flag for naming the loaded matrix doesn't work. It seems like a bug and I wish it worked correctly.

Loadwave/J/M/B="N=MyName;"
// Correctly names the matrix as MyName

Loadwave/J/M/B="N=MyName;"/L={0,0,0,0,0}
// Correctly names the matrix as MyName

Loadwave/J/M/B="N=MyName;"/L={0,1,0,0,0}
// Correctly names the matrix as MyName

Loadwave/J/M/B="N=MyName;"/L={0,1,0,2,10}
// Incorrectly names the matrix as wave0


Posts: 1661
Joined: 2007-06-21
Location: United States

It works correctly but is complicated.

Using /B, you must provide specifications for each column, even for the columns that you are skipping. In the last example, you specify a name for column 0 in the file. Column 0 in the file is not being loaded so that name is not used.

This is explained in the Igor7 help for LoadWave as follows:

Quote:

You can load a subset of the columns in the file using the /L flag. Even if you do this, the column info specifications that you provide via the /B flag start from the first column in the file, not from the first column to be loaded. For example, if you are using /L to skip columns 0 and 1, you must skip columns 0 and 1 in the column info specification, like this:

// Skip column 0 and 1 and name the successive columns
/L={0,0,0,2,0} /B="C=2;N=Column2;N=Column3;"

The "C=2;" part accepts default specifications for columns 0 and 1 and the subsequent specifications apply to subsequent columns.

You can achieve the same thing using /B without /L, like this:
/B="C=2,N='_skip_';N=Column2;N=Column3;"

So in your last example, use:

LoadWave/J/M/B="C=2,N='_skip_';N=MyName;"/L={0,1,0,2,10}

It also works without ",N='_skip_'":

LoadWave/J/M/B="C=2;N=MyName;"/L={0,1,0,2,10}


rwashenfelder
Posts: 10
Joined: 2016-03-28
Location: United States

Thank you!


Back to top