【问题标题】:Error using / Matrix dimensions must agree使用错误/矩阵尺寸必须一致
【发布时间】:2014-03-30 05:29:27
【问题描述】:

我正在尝试使用匿名函数为我的数据创建洛伦兹分布。创建高斯分布没有问题,但洛伦兹分布遇到此错误。

错误:

使用 / 时出错

矩阵尺寸必须一致。

@(p,x)1/(pi*p(2)*(1+((x-p(1))/(p(2))).^2)) 中的错误

代码:

% Variables necessary for histograms
num_bins = 100;
low_range = linspace(min(low_data), max(low_data), num_bins);
low_counts = histc(low_data, low_range);
low_err = sqrt(low_counts);  


% Creating and testing fits
gauss_fun_form = @(p, x) 1/(p(2)*sqrt(2*pi))*exp(-(x-p(1)).^2/(2*p(2).^2));
loren_fun_form = @(p, x) 1/(pi*p(2)*(1+((x-p(1))/(p(2))).^2));

low_avg = mean(low_data);
low_std = std(low_data);    

low_gauss_param = [low_avg low_std];
low_gauss = gauss_fun_form(low_gauss_param, low_range);
low_gauss_scale = max(low_counts)/max(low_gauss);

low_loren_param = [low_avg 2*log(2)*low_std];
low_loren = loren_fun_form(low_loren_param, low_range);
low_loren_scale = max(low_counts)/max(low_loren);

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:
    (pi*p(2)*(1+((x-p(1))/(p(2))).^2)) generate vector of 100 dimensions
    

    虽然 1 是一维向量,所以矩阵除法无效,应该应用 ./。改变 loren_fun_form 的定义如下应该可以工作

    loren_fun_form = @(p, x) 1./(pi*p(2)*(1+((x-p(1))/(p(2))).^2));
    

    【讨论】:

      猜你喜欢
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 2012-07-12
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多