常用函数记录

常常碰到一些想要实现的功能一时记不起要用的函数,这里根据一些常见的功能对这些函数进行整理,持续更新。
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可以做条形图,统计每类的情况。有时候我们对于每一个类可能有多个值要进行对比。比如我们对比两个方法在每类上的得分,需要做下面的图:
常用函数记录_第1张图片
如何调整每个类上面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调整,需要自己根据需要添加。

你可能感兴趣的:(基本函数)