我正在尝试在数组中创建数字的直方图。我正在使用Matlab来做到这一点。我通过ssh连接,所以我只能在Linux计算机的终端上使用Matlab。我试图在数组中创建数据的直方图,并将其保存为.png。我知道为了让我保存这个,我需要使用print
函数。到目前为止,我的尝试如下:
h=hist(array)
print(h,'-dpng','hist1.png')
告诉我没有定义为-dpng
的变量,但我认为重点是指定文件类型。
然后我删除了-dpng
并将其作为
print(h,'hist1.png')
它告诉我“句柄必须是标量,向量或向量的单元格数组”
此时我不知道接下来该做什么。我想有人帮我弄清楚如何将这个直方图打印到.png文件。谢谢。
答案 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'
。