保存直方图而不显示它们并调整绘制的拟合对象的线宽

Saving histograms without displaying them and adjust linewidth of plotted fit objects

我在 matlab 中安装了高斯直方图。这是我的代码:

dnbins = 100;
[counts,centers] = hist(data(:), nbins);
bar(centers, counts);
fitobject = fit(centers',counts','gauss2');hold on;
plot(fitobject,centers',counts');hold off; 

如何保存输出但不显示它?可能吗?

此外,我想要一条更粗的红线,所以我更改了以下行:

plot(fitobject,centers',counts', 'LineWidth', 2.0);hold off;

我收到以下错误:

Error in color/linetype argument

而这段代码运行良好:

plot(centers',counts', 'LineWidth', 2.0);hold off;

当然不能满足我,因为我也想看拟合曲线

如何更改线条粗细?

编辑:

我收到以下错误:

  This functionality is no longer supported under the -nojvm startup option.

这是有道理的,因为我不能使用图形输出。我编译代码,然后在 Linux.

下 运行

我该如何解决?

第一个问题:你需要 figure 对象的 'visible' 属性。

...
fitobject = fit(centers',counts','gauss2'); hold on;
figure('visible','off') 
plot(fitobject ,centers',counts'); hold off; 
...

第二个问题:将 plot 函数与 fit-objects 一起使用实际上调用了一个不同的 plot (cfit) 函数,它是 Curve Fitting Toolbox 的一部分.这就是为什么通常的行为不适用的原因。然而,这个小解决方法几乎总是有效。

h = plot(fitobject, centers',counts'); hold off;
set(h, 'LineWidth',2)