常用函數記錄

常常碰到一些想要實現的功能一時記不起要用的函數,這裏根據一些常見的功能對這些函數進行整理,持續更新。
1.目錄處理:需要讀一個目錄裏邊的內容:
pwd:返回當前的目錄,一個字符串;
dircon=dir(dirctory):返回directory目錄下的所有文件(夾)的信息;返回的是一個結構體數組,結構體成員包括:name,date, bytes,isdir,datenum.其中最常用的是name:字符串,表示文件或者文件夾名稱;isdir:邏輯型,如果對應的文件夾,則爲1,否則爲0。需要注意的是結構體數據裏面都會包含(’.’和’..’)這兩個文件夾,一個是當前目錄,一個是父目錄。在處理目錄的內容時通常需要去掉這兩個特殊目錄:dircon = dircon(2:end);
通常我們需要目錄裏全部的文件名:filenames = {dircon.name};這樣就可以得到全部文件(夾)名的胞元,每個元素都是一個文件名。類似的,bdir=[dircon.name]可以得到關於是否是一個目錄的數組。
如果只想得到directory目錄下某種格式的文件信息,比如.jpg格式的文件:
dirimages = dir(fullfile(directory,’*.jpg’));%fullfile函數用於創建的路徑,dir根據路徑返回相關的文件信息,仍然是一個結構體。
2.multibar:
matlab中的bar可以做條形圖,統計每類的情況。有時候我們對於每一個類可能有多個值要進行對比。比如我們對比兩個方法在每類上的得分,需要做下面的圖:
multibar
如何調整每個類上面bar的座標呢?其實比較簡單,需要注意的地方在於你輸入的座標是每個bar中間的位置。根據這個畫多個bar的時候可以通過下面的方式:

function x = multibar(x,y,width,M)
%%This function extend the bar to draw multiple bars in one figure
% x is a vector 1 by N, N is the num of classes, typically x= [1:N]
% y is matrix  M by N, M is num of oberservation in one class
%width is the width of bar, suggest to be 0.2
colorstr = 'brgcmyks';
    for iob = 1:M
        xtmp = x-width/2*(M-2*iob-1); 
        ytmp = y(iob,:);
        bar(xtmp,ytmp,width,colorstr(iob));
        hold on;
    end

    set(gca,'XTick',x);xlabel('class'); ylabel('proportion')
end

這裏沒有對legend調整,需要自己根據需要添加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章