Io package, col2num undefined

a = odsread(‘22Log.ods’,‘Sheet1’,‘K30:L103’) ;
Detected ODS interfaces: OCT*; (* = default interface)
error: ‘col2num’ undefined near line 49 column 10
error: called from
parse_sp_range at line 49 column 8
OCT_ods2oct at line 77 column 45
ods2oct at line 192 column 30
odsread at line 181 column 28

OS: Ubuntu 20.04.4 LTS
Octave: 5.2.0
io: 2.4.13
I installed octave and io with synaptic package manager.

Can you verify that the io package is loaded (pkg load io) before you call col2num?

Also, is it possible to do pkg update for you or will that break things? The versions you quote are pretty old.

No change after (pkg load io).
The octave and io versions are what come from the package manager.

I ran pkg update, now have 2.6.4.
When I ran pkg update, it didn’t install it in /usr/share/octave/packages (where io-2.4.13 is), it installed it in /home/brad/octave/io-2.6.4 .
After fixing my path so it used the new one, still the same error.

Searching for col2num under the new package, I found it in a folder that was not in my path, adding it to the path fixed it:


Is this a bug, or did I miss a step?
Searching under the default path, /usr/share/octave, only finds this:

dt2:find -iname "*col2num*"

What is the output of the command:
which col2num

(it is a user-visible function so that command should return its location)

which col2num
‘col2num’ is a function from the file /home/brad/octave/io-2.6.4/x86_64-pc-linux-gnu-api-v53/col2num.oct

Before adding that path, col2num was not found

I’ve learned that one needs to run pkg load ‘package’ after running pkg update ‘package’. This updates the path and I’ve added it to .octaverc. I’m an old Matlab user, so this wasn’t obvious to me.

The packages as installed by the OS package manager & from the octave cmd line (with pkg update) are installed in different locations. I have sudo privileges, but octave didn’t ask. This seems like a bug.