2013-03-29 80 views
1

我想創建數組中的數字直方圖。我正在使用Matlab來做到這一點。我通過SSH連接,所以我只能在我的Linux計算機上的終端中使用Matlab。我正在嘗試在數組中創建數據的直方圖並將其保存爲.png。我知道爲了保存這個,我需要使用print函數。到目前爲止,我的嘗試是以下幾點:使用matlab將直方圖打印到文件的問題

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

它告訴我,沒有定義爲-dpng可變的,但我認爲那點是指定文件類型。

然後我剛剛刪除的-dpng並運行它作爲

print(h,'hist1.png') 

到它告訴我「手柄必須是標量,矢量或矢量單元陣列」

此時我不知道下一步該做什麼。我希望有人幫助我弄清楚如何將這個直方圖打印到.png文件。謝謝。

+0

安裝八度:它是一個開源的matlab變體。 –

+0

@Eddy_Em我無法做到這一點。 – user2225389

回答

2

本身,函數hist(數組)繪製直方圖。如果將輸出分配給一個變量,它將返回數組的分箱值,而不是您的圖的句柄。

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

難道你不是指'saveas'而不是'save'嗎? – erikced

+0

是的!謝謝。 – Molly

6

hist不會返回一個數字手柄,你可以做類似的東西:

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

保存直方圖。

+0

謝謝!這工作完美。 – user2225389

+0

@ user2225389不客氣。請不要忘記接受答案。 – erikced

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)

0

,除非你想打印不是當前的數字你並不需要使用數字處理。默認print使用gcf返回當前數字的句柄。

所以你就可以這樣做:

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

你得到了一個錯誤,沒有定義爲-dpng可能是因爲你忘了一個報價符號和使用-dpng'變量。