使用matlab将直方图打印到文件的问题

时间:2013-03-29 19:43:29

标签: linux matlab

我正在尝试在数组中创建数字的直方图。我正在使用Matlab来做到这一点。我通过ssh连接,所以我只能在Linux计算机的终端上使用Matlab。我试图在数组中创建数据的直方图,并将其保存为.png。我知道为了让我保存这个,我需要使用print函数。到目前为止,我的尝试如下:

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

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

然后我删除了-dpng并将其作为

运行
print(h,'hist1.png')

它告诉我“句柄必须是标量,向量或向量的单元格数组”

此时我不知道接下来该做什么。我想有人帮我弄清楚如何将这个直方图打印到.png文件。谢谢。

4 个答案:

答案 0 :(得分:6)

hist没有返回数字句柄,你可以做类似的事情:

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

保存直方图。

答案 1 :(得分:2)

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

f = figure;
hist(array)
saveas(f,'hist.png')

答案 2 :(得分:0)

您可能希望将数组输出到csv文件。

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

请参阅此链接,您应该可以根据需要更改答案:Outputing cell array to CSV file ( MATLAB )

答案 3 :(得分:0)

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

所以你可以做到:

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

您收到的错误是没有将变量定义为-dpng,可能是因为您忘记了一个引号符号并使用了-dpng'