Matlab

為什麼無法安裝 WFDB?

  • July 9, 2016

我正在 Ubuntu Linux 14.04 64 位中安裝 Matlab 2016a 的 WFDB 工具箱,說明在此處。我願意

[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?

您可以(臨時)為使用者分配對該文件的寫入權限,例如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 首選項中更改初始文件夾路徑。

引用自:https://unix.stackexchange.com/questions/268931