matlab中有多个文件名为BJS101-001(SN051)_CH1_Amp和多个BJS101-001(SN051)_CH2_Amp的csv文件,如何根据名称中的CH1和CH2分别读取文件并存入不同的表格中
时间: 2024-10-11 14:03:02 浏览: 31
在MATLAB中,你可以使用`readtable`函数以及字符串操作来根据文件名的不同部分读取并分别存储CSV文件。假设所有文件都在当前工作目录下,可以按照以下步骤操作:
1. 首先,创建一个函数来获取文件路径,然后根据`CH1`或`CH2`的部分筛选出对应的文件:
```matlab
function filePath = getFilePath(fileName, channel)
% 获取文件名和通道名的位置
channelPos = strfind(fileName, '(');
if ~isempty(channelPos)
channelName = fileName(channelPos+1:end-1); % 提取通道名
% 根据通道名创建完整文件路径
switch channel
case 'CH1'
filePath = fullfile(pwd, [fileName(1:channelPos-1) '_CH1_Amp.csv']);
case 'CH2'
filePath = fullfile(pwd, [fileName(1:channelPos-1) '_CH2_Amp.csv']);
otherwise
error('Invalid channel specified');
end
else
error('File name does not contain channel information');
end
end
```
2. 然后,遍历文件夹,读取并创建对应于每个通道的表格:
```matlab
% 设置需要读取的通道
channels = {'CH1', 'CH2'};
% 初始化表格数组
tables = cell(numel(channels), 1);
for i = 1:numel(channels)
[~, path] = getFilePath('BJS101-001(SN051)', channels{i});
tables{i} = readtable(path);
end
```
现在,`tables{1}`将包含`CH1`的数据,而`tables{2}`将包含`CH2`的数据。
阅读全文