首页 > 解决方案 > mzcdf2peaks 不接受由 mzcdfread 在 Matlab r2020a 中创建的给定数据

问题描述

所以我有以下代码和错误:

>> data = mzcdfread('sample1.cdf');

Reading filename: sample1.cdf  
Number of dimensions: 11   Unlimited Dimension:  8
Number of variables:  12   Number of attributes: 10

Exploring global netCDF attributes:
     acd_ec_version -> 1.0
     dataset_completeness -> C1
     aia_template_revision -> 1.0
     netcdf_revision -> 3.4
     languages -> English
     injection_date_time_stamp -> 20120404170129+-0500
     separation_experiment_type -> Liquid Chromatography
     source_file_reference -> L:\chromatogram\web\sample 1.xy
     detector_unit -> AU
     retention_unit -> seconds
 
Exploring netCDF dimensions:
                          Name  Length  Dim_ID 
                _2_byte_string       2     1
                _4_byte_string       4     2
                _8_byte_string       8     3
               _16_byte_string      16     4
               _32_byte_string      32     5
               _64_byte_string      64     6
              _128_byte_string     128     7
              _255_byte_string     255     8
                  acd_ec_count       0     9
                  error_number       1    10
                  point_number   17999    11

Reading netCDF variables:
                          Name    Type  Dim_ID  NumAtt
                     error_log      2   6 10       0
        detector_maximum_value      5              0
        detector_minimum_value      5              0
        actual_run_time_length      5              0
      actual_sampling_interval      5              0
             actual_delay_time      5              0
               ordinate_values      5     11       1
         uniform_sampling_flag -> Y
           peak_retention_time      5              0
                     peak_name      2              0
                   peak_amount      5              0
                     peak_area      5              0
                   peak_height      5              0
>> mzcdf2peaks(data)
Error using mzcdf2peaks (line 27)
Input structure MZCDFSTRUCT must be created by MZCDFREAD. 

这是一个简单的 .cdf 文件。我希望最终输出为:

最后结果

但正如您所见,mzcdf2peaks功能对我不起作用并导致此错误:

Error using mzcdf2peaks (line 27)
Input structure MZCDFSTRUCT must be created by MZCDFREAD.

我正在关注这个示例,他们使用以下命令:

mzcdf_struct = mzcdfread('results.cdf');
[peaks,time] = mzcdf2peaks(mzcdf_struct)
figure
hold on

for i = 1:numel(peaks)
    t = repmat(time(i),size(peaks{i},1),1);
    plot3(t,peaks{i}(:,1),peaks{i}(:,2),'color',colors(i,:))
end

view(70,60)
xlabel('Time')
ylabel(mzcdf_struct.mass_axis_label)
zlabel(mzcdf_struct.intensity_axis_label)

当我sample1.cdf在 Unichrom 中打开文件时,它可以工作。

在职的

您可以在此处访问 cdf 文件:https ://files.fm/u/j7yjb23c

所以我的问题是如何让 Matlabmzcdf2peaks函数在这个数据集上工作?有没有其他方法可以实现所需的输出?

标签: matlabmatlab-figurenetcdfcdf

解决方案


推荐阅读