您好我正在尝试使用MatLab的拟合函数为我的数据拟合功率模型
fo = fit(log2(x(:)),log2(y(:)),'power1');
plot(fo,'g'), hold on
然而,当我运行此操作时,我收到错误
Error using fit>iFit (line 282)
Cannot fit Power functions to data where X has nonpositive values.
Error in fit (line 108)
[fitobj, goodness, output, convmsg] = iFit( xdatain, ydatain, fittypeobj, ...
Error in CurvedPowerLaw (line 20)
fo = fit(log2(x(:)),log2(y(:)),'power1');
查看我的数据并检查是否有少于1时,不显示任何内容
x(count_1)=M(i,1);
y(count_1)=M(i,2);
count_1= count_1+1;
if(M(i,2)<1)
display(M(i,1))
end;
M是一个包含两列的csv文件。我还重新编写了
的代码if(M(i,1)<1)
并且没有显示任何内容。手动检查,似乎没有任何东西低于1。
我只是正在解析的文件中的行。该文件看起来像
344,17
345,13
346,13
347,16
340,12
M(i,1)将返回> 300个数字中的一个,M(i,2)将返回~10值 任何帮助将不胜感激!!
由于
答案 0 :(得分:0)
虽然所有解析的值在按log2缩放时都是> 0,而0是开始出现的值。一个快速解决方法是在解析它们时为每个值添加1。