matlab 文件名分离_matlab根据文件名和提取列查找文件

我有一个文件夹,其文件名称相似,文件名中包含不同的编号:

P_Coord = 'C:\Coordinates\coor2.dom.txt';'C:\Coordinates\coor3.dom.txt';..etc until 100.

我从列表中得到一个数字CaseNo,它等于文件名中的一个数字。

我想在文件夹中的文件名中搜索CaseNo,当它找到带有该编号的文件名时,从该文件中提取第2和第3列值(坐标),其中row.name等于midday。

例如,CaseNo = 3需要文件' Coor3.com.txt'。 (还需要避免文件名38,31,31,33,13等)

fileCoor = dir('Coor*.com.txt');

for i = 1:numel(fileCoor)

if (CaseNo = fileCoor(i).name)

%我认为我需要使用正则表达式但不确定如何使其正常工作

CaseNo = regexp (fileCoor(i).name,'Coor(\d*).dom.txt');

%提取第2和第3列

CaseCoor [x][y] = fileCoor (2;midday),(3;midday)

我对Matlab不太熟悉,花了很长时间才弄明白如何实现它。任何帮助将不胜感激!

这就是那些文本文件的样子(我需要在中午拍摄2& 3 col):

morning -13.451536 -52.025423 -1.043887

Bd 3.222905 6.761101 -69.551082

...

midday 31.112678 -84.673258 -47.892980

感谢,

米拉

MATLAB,你可以使用`xlsread`函数读取Excel文件,并利用`cellfun`或者`repmat`结合循环结构来处理多个文件的合并。假设你要合并的文件都在两个名为folders1和folders2的文件夹,且它们都有同名的Excel文件,如`file.xlsx`。以下是简单的步骤: 1. 首先,你需要获取每个文件夹所有同名文件的路径。可以使用`dir`函数并添加适当条件筛选出excel文件: ```matlab folder1 = 'folders1/'; folder2 = 'folders2/'; files1 = dir(fullfile(folder1, '*.xlsx')); % 查找folder1下的.xlsm文件 files2 = dir(fullfile(folder2, '*.xlsx')); % 查找folder2下的.xlsm文件 ``` 2. 然后,创建一个数组存储数据,初始化为空矩阵: ```matlab data = []; ``` 3. 使用`cellfun`遍历文件表,读取每个文件的数据,然后拼接到`data`数组: ```matlab for i = 1:numel(files1) file1_path = fullfile(folder1, files1(i).name); data{i} = xlsread(file1_path); % 对于folder2的文件,同样操作 if ismember(files1(i).name, {files2.name}) file2_path = fullfile(folder2, files1(i).name); data{i+numel(files1)} = xlsread(file2_path); end end ``` 4. 最后,将数据写入新的Excel文件,这里使用`writetable`: ```matlab new_file_name = 'merged_data.xlsx'; % 新文件名 output_dir = 'merged_files_folder/'; % 输出目录 % 创建新工作表并将数据写入 for i = 1:numel(data) sheet_name = ['Sheet' num2str(i)]; output_path = fullfile(output_dir, [sheet_name '.xlsx']); writetable(data{i}, output_path, SheetName=sheet_name); end ``` 这会将每个文件的内容分别写入新的Excel文件,每个文件作为单独的工作表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值