首页 > 学院 > 开发设计 > 正文

matlab常用技巧

2019-11-08 02:26:39
字体:
来源:转载
供稿:网友

matlab编程技巧常用方法积累

标签(空格分隔): 编程技巧

1)处理某个文件夹中所有指定格式的对象

file_path = './data/'; % 图像文件夹路径img_path_list = dir(strcat(file_path,'*.jpg')); %获取该文件夹中所有jpg格式的图像img_num = length(img_path_list); %获取图像总数量if img_num > 0 %有满足条件的图像 for j = 1:img_num %逐一读取图像 image_name = img_path_list(j).name; % 图像名 image = imread(strcat(file_path,image_name)); fPRintf('%d %d %s/n',i,j,strcat(file_path,image_name)); % 显示正在处理的图像名 %图像处理过程 省略 endend

2)处理多个文件夹中的所有对象

p = genpath('./data');% 获得文件夹data下所有子文件的路径,这些路径存在字符串p中,以';'分割length_p = size(p,2);%字符串p的长度path = {};%建立一个单元数组,数组的每个单元中包含一个目录temp = [];for i = 1:length_p %寻找分割符';',一旦找到,则将路径temp写入path数组中 if p(i) ~= ';' temp = [temp p(i)]; else temp = [temp '/']; %在路径的最后加入 '/' path = [path ; temp]; temp = []; endend clear p length_p temp;%至此获得data文件夹及其所有子文件夹(及子文件夹的子文件夹)的路径,存于数组path中。%下面是逐一文件夹中读取图像file_num = size(path,1);% 子文件夹的个数for i = 1:file_num file_path = path{i}; % 图像文件夹路径 img_path_list = dir(strcat(file_path,'*.jpg')); img_num = length(img_path_list); %该文件夹中图像数量 if img_num > 0 for j = 1:img_num image_name = img_path_list(j).name;% 图像名 image = imread(strcat(file_path,image_name)); fprintf('%d %d %s/n',i,j,strcat(file_path,image_name));% 显示正在处理的路径和图像名 %图像处理过程 省略 end endend

3)批量读取有规律的命名文件

对于如上图所示的命名文件,matlab中可以用eval指令进行读取,具体代码如下:

ip=1for i=1:2 for j=1:2 for k=1:4 %循环读图 fileName = ['DSmat_' ,num2str(i),'_',num2str(j),'_',num2str(k), '.mat'] load(fileName); filename = ['test25_' num2str(i) '_' num2str(j) '_' num2str(k) '.jpg']; eval(['test25_' num2str(ip) '=imread(filename);']); ip =ip+1 end endend

4)matlab指令调用C语言中的exe,并返回c语言中打印的数据

cmd = './c.exe'[temp, S] = system(cmd);

5)使用pwd直接获取工作目录的路径

p = pwd;%return the current work directory
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表