CDF 的输入参数不足

Not enough input arguments for CDF

我正在尝试为我的数据绘制 CDF,但收到以下错误消息:

Error using cdf (line 69) Not enough input arguments

我的代码:

 data =cell(1,5);
 for j=1:length(container)-7
        data{j} = some_values;
 cdfplot(data)

所以数据是一个 1x5 cell 而在它里面,值如下 1x14600double1x260double1x2222double1x3000double1x72double

我希望每个双数组都有单独的一行,即我的 cdf 图有 5 行。 但是,错误消息让我感到困惑,因为我肯定已经传递了数据。有什么想法吗?

已编辑:好的,我写错了而不是 cdfplot(),我有 cdf()...问题保持不变

问题是缺乏关于单元格和数字如何工作的知识。

figure;
hold on;
cellfun(@cdfplot,data);

这段代码完成了工作:)

除了 using cellfun, you can also solve this by adjusting how you access the cell array

关键思想:使用 A{} 访问 AA()

% MATLAB R2018b
% Sample data
A = {rand(1,14600) rand(1,260) rand(1,2222) rand(1,3000) rand(1,72)};

注意 A(1) returns

ans = 1×1 cell array {1×14600 double}

while A{1} returns 完整的 1x14600 双精度数组(从元胞数组中完全提取)。

% Example usage
szA = size(A);
for k = 1:szA(2)
    subplot(5,1,k)
    cdfplot(A{k})
end

从这个例子可以看出 cdfplot 工作正常。