【matlab】不允许获取 dfilt.basefilter 的 'version' 属性

源代码较长,这里贴出报错所在行对应的函数

for s = 1 : length(alg_names.old_names)
        eval(['rel_data = est_RRs.' alg_names.old_names{s} '.v(:);']);%此行报错不允许获取 dfilt.basefilter 的 'version' 属性
        start_el = counter_no+1;
        counter_no = counter_no + length(rel_data);
        data.est(start_el:counter_no,1) = rel_data;
        data.alg_no(start_el:counter_no,1) = s;
        if ecg_log(s)
            data.sqi(start_el:counter_no,1) = sqi.ekg.v;
            data.hr(start_el:counter_no,1) = sqi.ekg.hr;
            data.hr_rr(start_el:counter_no,1) = ekg_hr_rr_ratio;
        else
            data.sqi(start_el:counter_no,1) = sqi.ppg.v;
            data.hr(start_el:counter_no,1) = sqi.ppg.hr;
            data.hr_rr(start_el:counter_no,1) = ppg_hr_rr_ratio;
        end
    end

“Devil组”引证GPT后的撰写:

  • 据报错信息,可能是因为 dfilt.basefilter 对象没有 version 属性导致了错误。建议检查 est_RRs 变量中所有的 dfilt.basefilter 对象是否都有 version 属性,或者尝试使用其他属性代替 version 属性。另外,如果 dfilt.basefilter 对象没有 version 属性是不影响算法执行的,你可以尝试忽略该错误并继续执行代码,但需要注意该错误可能会影响算法结果的准确性。