三八节活动MATLAB提取元胞数组中符合条件的元胞⽤户输⼊条件
孟尝君将入秦clc;
filepath = '..\******\';
dirOutput = dir(fullfile(filepath,'*.ply'));
plyName = {dirOutput.name}';
propmt = 'input the gsigma value\n';
开三gsigma = input(propmt,'s');
propmt = 'input the tsigma value\n';
tsigma = input(propmt,'s');
expr = ['gsigma_' gsigma '_tsigma_' tsigma];
res = regexp(plyName,expr,'match');
小学生英语作文
index = ~cellfun('impty', res);
桥的故事out = plyName(index);
regexp是正则表达式,能够搜索出匹配的内容,但是由于搜索对象是元胞数组,所以返回的res是和元胞数组同等维度的元胞数组,但仅在搜索对象符合条件处不为空,故借此特点可以提取出符合条件的元胞内容。效果如图所⽰。
如果需要⽤户输⼊数值类型的数据,可以将输⼊函数修改为如下的形式。
propmt = 'input the tsigma value\n';
gsigma = input(propmt);
clc;clear;
filepath = '..\NoidPlyFiles\';
dirOutput = dir(fullfile(filepath,'*.ply'));
plyName = {dirOutput.name}';
propmt = 'input the gsigma value\n';
gsigma = input(propmt,'s');
propmt = 'input the tsigma value\n';
tsigma = input(propmt,'s');
expr = ['gsigma_' gsigma '_tsigma_' tsigma];
res = regexp(plyName,expr,'match');
index = ~cellfun('impty', res);
out = plyName(index);
%这⾥是为了能让输出的⽂件名前⾯有个序号,以便⽂件太多了⽆法知道⽂件名对应的索引是哪个
num = size(out,1);
新疆美食介绍output = cell(num,1);
铃兰花for i = 1:num
output{i} = [int2str(i),'-',out{i}];
end
disp(output);
clear output;
%这⾥清楚output是因为程序中并没有清空全部,但是每次的output不同,所以这⾥清空⽐较好,防⽌输出上次的信息
promt = 'choo one content to display\n';什么流水成语
index = input(promt);
displayName = out{index};
上⾯是实现功能的⼀个完整的程序,后⾯加⼊了⼀段在匹配内容前加索引的代码,⽬的是能够通过⽤户输⼊来选择操作哪个⽂件,但是⽂件多了不太好找出索引,所以加了这个索引⽅便⽤户选择。