我首先设置了系统
[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-3.zip';
[filestr,status] = urlwrite(wfdb_url,'wfdb-app-toolbox-0-9-3.zip');
unzip('wfdb-app-toolbox-0-9-3.zip');
cd mcode
addpath(pwd);savepath
我正在尝试从Physionet读取数据库。我已通过以下方式成功到达一个数据库mitdb
[tm,sig]=rdsamp('mitdb/100',1)
但我想通过以下方式访问数据库ptbdb失败
[tm,sig]=rdsamp('ptbdb/100',1)
并得到错误
Warning: Could not get signal information. Attempting to read signal without buffering.
> In rdsamp at 107
Error: Cannot convert to double:
init: can't open header for record ptbdb/100
Error using rdsamp (line 145)
Java exception occurred:
java.lang.NumberFormatException: Cannot convert
at org.physionet.wfdb.Wfdbexec.execToDoubleArray(Unknown Source)
第一条错误消息指的是rdsamp.m中的这些行:
if(isempty(N))
[siginfo,~]=wfdbdesc(recordName);
if(~isempty(siginfo))
N=siginfo(1).LengthSamples;
else
warning('Could not get signal information. Attempting to read signal without buffering.')
end
end
此行为if(~isempty(siginfo))
false 表示siginfo为空,即没有信号。为什么?我认为无法访问数据库。我认为其他错误随之而来。所以错误必须从这一行开始
[siginfo,~]=wfdbdesc(recordName);
括号中的蛇是什么意思?
Matlab 如何从 ptbdb 获取数据?
所以
这个错误是否意味着无法建立与数据库的连接? 或者 数据库中不存在这样的数据?
很高兴知道如何检查您是否像 Postrgres 那样连接到数据库。调试起来会容易得多。