matlab输出高分辨率图片有白色毛刺,科学网—图片空白边缘处理/统计直方图---matlab/保存生成高质量的清晰图 - 杨小林的博文...
這里介紹hist函數結合bar函數繪制統計直方圖
一組原始采集數據,如:data=[2 3 -4 -1 4 -5 1 5 -2 -3]; 數據范圍為range=-5:5;
首先可以采用hist函數進行分組:
n=hist(data,range); 將數據data根據range進行分組;返回數組n,n的維數同range;
然后用bar畫圖:
bar(range,n,'hist'); ?繪制直方圖(柱狀圖),對分組較少的適用。
有時并沒有給定分組范圍range,而是希望分成count組:
還是使用hist函數分組:
n=hist(data,count); 將原始數據data自動分成count組,根據原始數據值函數自動設定分組范圍,返回值n為數組,維數為count,內容為每一分組的頻數;
bar(n); 繪制直方圖;
如果這里沒有給定count,hist(data)默認分成10組。
hist(data,range)直接繪制直方圖,但是每個bar之間有間隙,所以,如果想沒有間隙的直方圖,推薦使用第一種方法。分組如果較多的話,推薦這種方法。
matlab常用的幾個快捷鍵:
ctrl+r ? ?注釋
ctrl+t ? ?取消注釋
ctrl+i ? ?自動對齊程序
ctrl+] ? ?增加縮進
ctrl+[ ? ?減少縮進
ctrl+y ? 恢復撤銷的更改
ctrl+w ?關閉當前窗口
ESC ? ?清除命令行中一行
ctrl+u ? 同ESC
ctrl+k ? 清除光標后至行尾的字符
1. 坐標軸刻度設置set(gca, ’XTick’, [0 1 2]) X坐標軸刻度數據點位置,在值為0,1,2的地方顯示刻度set(gca,'XTickLabel',{'a','b','c'}) X坐標軸刻度處顯示的字符因此,set(gca,'xtick',[100 200 300],'xticklabel',[1 2 3]) X軸在值為100,200,300的地方顯示刻度1,2,3例1:y_tick = {'1.00e-004','1.01e-002','2.01e-002','3.01e-002','4.01e-002',...'5.01e-002','6.01e-002','7.01e-002','8.01e-002','9.01e-002'}set(gca, 'YtickLabel',y_tick);
例2:set(gca,'xticklabel',sprintf('%03.4f|',get(gca,'xtick')));
例1中,當tick值較復雜時,可將tick的值提前賦值到一個變量中,隨后利用變量即可;
例2中,在坐標軸刻度的顯示過程中可以用sprintf函數,這樣即可根據用戶的需要顯示坐標刻度;注:"|"不可省略
set(gca,'xtick',[]) 不顯示x軸的坐標刻度
set(gca,'FontName','Times New Roman','FontSize',14)設置坐標軸刻度字體名稱,大小‘FontWeight’,’bold’ 加粗 ‘FontAngle’,’italic’ 斜體對字體的設置也可以用在title, xlabel, ylabel等中
2. 坐標軸范圍設置
axis(gca,[xmin xmax ymin ymax]) 設置坐標軸范圍
axis auto 根據數據自動設置坐標軸范圍
axis off ?關閉坐標軸
set(gca,'xlim',[-20 20],'ylim',[-20 20]);設置當前圖像的坐標軸范圍,等同于axis(gca,[xmin xmax ymin ymax])語句
xlim(gca,[-20 20]);設置當前圖像的x坐標軸范圍
ylim(gca,[-20 20]);設置當前圖像的y坐標軸范圍
3. 坐標軸網格
set(gca,'xgrid','on');開啟x軸網格
grid on;開啟坐標軸網格
MATLAB保存生成高質量的清晰圖片
saveas保存jpg格式的圖像線條變粗、變模糊,整幅圖片就像有一層很薄的水印蓋在上面。
解決方案:
(1)其實matlab的出圖都是矢量圖,你就直接在‘edit’里面選擇copy,然后就paste到word里面,伸縮自如,保證清晰
(2)可以試試print
如要把圖保存成jpeg的格式的話,可以這樣print -djpeg -r85 jpegtest
其中,-djpeg是格式 d表示device,jpeg是格式,-r85 表示像素 85dpi ? r 表示resolution ,也就是分辨率的第一個字母jpegtest 是文件名
也可以
print('-djpeg','-r300',Path)
或
print(gcf,'-djpeg','-r300',Path)
print( ... )
Same as above but this calls PRINT as a MATLAB function instead of
a MATLAB command. The difference is only in the parenthesized argument
list. It allows the passing of variables for any of the input
arguments and is especially useful for passing the handles
of figures and/or models to print and filenames.
注:dpi的含義
Dots Per Inch的縮寫。每英寸所打印的點數或線數,用來表示打印機打印分辨率。一般來說,該值越大,表明打印機的打印精度越高。dpi是指單位面積內像素的多少,也就是掃描精度。dpi越小,掃描的清晰度越低,由于受網絡傳輸速度的影響,web上使用的圖片都是72dpi,但是 沖洗照片不能使用這個參數,必須是300dpi或者更高350dpi。例如要沖洗4*6英寸的照片,掃描精度必須是300,那么文件尺寸應該是 (4*300)*(6*300)=1200像素*1800像素。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的matlab输出高分辨率图片有白色毛刺,科学网—图片空白边缘处理/统计直方图---matlab/保存生成高质量的清晰图 - 杨小林的博文...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 模拟并发请求_PHP模拟并发请求
- 下一篇: 怎么创建数据表的实体类和业务类_微服务项