2

我正在尝试在数组中创建数字的直方图。我正在使用 Matlab 来执行此操作。我通过 ssh 连接,所以我只能在我的 Linux 计算机的终端中使用 Matlab。我正在尝试创建数组中数据的直方图并将其保存为 .png。我知道为了让我保存它,我需要使用该print功能。到目前为止,我的尝试如下:

h=hist(array) 
print(h,'-dpng','hist1.png')

这告诉我没有定义变量,-dpng但我认为重点是指定文件类型。

然后我只是删除-dpng并运行它

print(h,'hist1.png')

它告诉我“句柄必须是标量、向量或向量元胞数组”

在这一点上,我完全不知道下一步该做什么。我希望有人帮我弄清楚如何将此直方图打印到 .png 文件中。谢谢你。

4

4 回答 4

6

hist不返回图形句柄,您可以执行以下操作:

h = figure;
hist(array);
print(h, '-dpng', 'hist1.png');

保存直方图。

于 2013-03-29T19:56:25.543 回答
2

函数 hist(array) 本身会绘制一个直方图。如果将输出分配给变量,它会返回数组的分箱值,而不是图的句柄。

f = figure;
hist(array)
saveas(f,'hist.png')
于 2013-03-29T19:53:44.673 回答
0

you may would like to output the array to a csv file.

fid = fopen('file.csv','wt');
for i=1:size(arr)
    fprintf(fid, '%s,%d,%d\n','element number' ,i ,arr(i));
end
fclose(fid);

See this link, you should be able to change the answers there to your needs: Outputing cell array to CSV file ( MATLAB )

于 2013-03-29T20:02:23.617 回答
0

除非您想打印不是当前的图形,否则您不需要使用图形句柄。默认情况下print使用gcf返回当前图形的句柄。

所以你可以这样做:

hist(array) 
print('-dpng','hist1.png')

你得到一个错误,没有定义变量,-dpng可能是因为你忘记了一个引号并使用了-dpng'.

于 2013-04-10T20:28:19.863 回答