为什么无法安装WFDB?

为什么无法安装WFDB?

我在 Ubuntu Linux 14.04 64 位中安装 Matlab 2016a 的 WFDB Toolbox,安装说明如下这里。我愿意

[old_path]=which('rdsamp');if(~isempty(old_path)) rmpath(old_path(1:end-8)); end
wfdb_url='http://physionet.org/physiotools/matlab/wfdb-app-matlab/wfdb-app-toolbox-0-9-9.zip';
[filestr,status] = urlwrite(wfdb_url,'wfdb-app-toolbox-0-9-9.zip');%Octave users may have to download manually
unzip('wfdb-app-toolbox-0-9-9.zip');
cd wfdb-app-toolbox-0-9-9;cd mcode
addpath(pwd);savepath

我遇到权限问题

Warning: Unable to save path to file '/usr/local/MATLAB/R2016a/toolbox/local/pathdef.m'. You
can save your path to a different location by calling SAVEPATH with an input argument that
specifies the full path. For MATLAB to use that path in future sessions, save the path to
'pathdef.m' in your MATLAB startup folder. 

我想保存到错误中指示的默认位置,即每个用户的 pathdef.m 文件。

thrig的回答结果

  • 适用于最新更新的 Ubuntu 16.04 64 位
  • 不适用于 OS X El Capitan。

在航站楼执行

echo "export MATLAB_USE_USERWORK=1" >> $HOME/.bashrc
matlab -nodesktop -nosplash -r \ 
    "userpath('/home/masi/Documents/bin/matlab/'); exit;"

最终设置

if (exist('old_path', 'var') == 0) 
    home='/home/masi/';
    [old_path]=which('rdsamp');if(~isempty(old_path)) rmpath(old_path(1:end-8)); end
    wfdb_url='http://physionet.org/physiotools/matlab/wfdb-app-matlab/wfdb-app-toolbox-0-9-9.zip';
    [filestr,status] = urlwrite(wfdb_url,'wfdb-app-toolbox-0-9-9.zip');%Octave users may have to download manually
    unzip('wfdb-app-toolbox-0-9-9.zip');
    cd(fullfile(home, 'wfdb-app-toolbox-0-9-9', 'mcode'));
    addpath(fullfile(home, 'wfdb-app-toolbox-0-9-9/mcode/')); % me
    %addpath(fullfile('wfdb-app-toolbox-0-9-9', 'mcode'));
    % Bug command sets userpath to '', why? http://stackoverflow.com/q/38283814/54964
    %savepath(fullfile(home, 'pathdef.m')); % ~/pathdef.m originally
end

如何在 Matlab 2016a 中通过每用户 pathdef.m 文件安装 WFDB?

答案1

您可以(暂时)为用户分配对该文件的写入权限,例如,sudo chown youruseraccount /usr/local/MATLAB/R2016a/toolbox/local/pathdef.m然后进行安装,然后将权限更改回来。但如果您缺乏这样做的特权,这将不会成功。另一种选择是更改savepath调用以编写自定义pathdef.m

$ cd
$ matlab
...
>> mkdir wfdb
>> cd wfdb
>> [old_path]=which('rdsamp');if(~isempty(old_path)) rmpath(old_path(1:end-8)); end
...
>> savepath ~/pathdef.m
>> exit
...
$ matlab
...
>> wfdb

这假设您的主目录是 matlab 的启动文件夹,尽管pathdef.m可以将其保存到其他目录并且 matlab 从该目录启动,或者在 matlab 首选项中更改初始文件夹路径。

相关内容