鱼C论坛

 找回密码
 立即注册
查看: 312|回复: 7

[已解决]matlab

[复制链接]
发表于 2024-5-22 15:30:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
matlab读取多个excel文件第四列数据并输出到另一个新的excel
最佳答案
2024-5-22 15:37:35
12345678zltsy 发表于 2024-05-22 15:35
错误使用 xlsread
无法激活 Excel 工作表。

出错  ...


对不起,看样子您遇到了一个无法激活 Excel 工作表的问题。这可能是由于您的电脑上没有安装 Microsoft Office 或者 MATLAB 无法与 Excel 进行交互所导致的。让我们尝试一个不需要激活 Excel 工作表的解决方案。

您可以尝试使用 `readmatrix` 函数来读取 Excel 文件中的数据。下面是更新后的代码:
% 设置Excel文件所在文件夹路径
folderPath = 'path/to/excel/folder/';

% 获取文件夹下的所有Excel文件
fileList = dir(fullfile(folderPath, '*.xlsx'));  % 只获取后缀为.xlsx的文件,可以根据实际情况更改

% 创建一个空的矩阵来存储所有数据
allData = [];

% 循环处理每个Excel文件
for i = 1:length(fileList)
    % 构建文件的完整路径
    filePath = fullfile(folderPath, fileList(i).name);
    
    % 读取第四列数据
    dataColumn = readmatrix(filePath);
    dataColumn = dataColumn(:, 4);
    
    % 将数据合并到allData中
    allData = [allData; dataColumn];
end

% 创建新的Excel文件并将数据写入其中
newFilePath = 'path/to/new_excel.xlsx';
xlswrite(newFilePath, allData);

请确保将 `folderPath` 更改为实际的文件夹路径,并将 `newFilePath` 更改为新的 Excel 文件路径。此代码将读取指定文件夹下的所有 Excel 文件中的第四列数据,并将数据合并到一个矩阵中,然后将数据写入一个新的 Excel 文件中。这种方法不需要激活 Excel 工作表,可以解决无法激活工作表的问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-22 15:31:07 | 显示全部楼层
在MATLAB中,您可以使用`xlsread`函数读取Excel文件中的数据,并使用`xlswrite`函数将数据写入新的Excel文件。要读取多个Excel文件,您需要在一个循环中执行这些操作。下面是一个示例代码:
% 设置要读取的多个Excel文件的路径
filePaths = {'path1/excel1.xlsx', 'path2/excel2.xlsx', 'path3/excel3.xlsx'};

% 创建一个空的单元格数组来存储所有数据
allData = cell(0);

% 循环处理每个Excel文件
for i = 1:length(filePaths)
    % 读取第四列数据
    [~, ~, rawData] = xlsread(filePaths{i});
    dataColumn = rawData(:, 4);
    
    % 将数据添加到allData中
    allData = [allData; dataColumn];
end

% 创建新的Excel文件并将数据写入其中
newFilePath = 'path/to/new_excel.xlsx';
xlswrite(newFilePath, allData);

请确保将`filePaths`更改为实际的Excel文件路径,并将`newFilePath`更改为新的Excel文件路径。此代码将读取指定路径下的多个Excel文件中的第四列数据,并将数据写入一个新的Excel文件中。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 15:32:01 | 显示全部楼层
FishC 发表于 2024-5-22 15:31
在MATLAB中,您可以使用`xlsread`函数读取Excel文件中的数据,并使用`xlswrite`函数将数据写入新的Excel文 ...

excel文件在同一个文件夹内
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 15:32:15 | 显示全部楼层
12345678zltsy 发表于 2024-05-22 15:32
excel文件在同一个文件夹内


如果所有的Excel文件都在同一个文件夹内,那么您可以使用`dir`函数获取该文件夹下的所有Excel文件,并在一个循环中逐个读取并处理这些文件。以下是一个更新后的示例代码:
% 设置Excel文件所在文件夹路径
folderPath = 'path/to/excel/folder/';

% 获取文件夹下的所有Excel文件
fileList = dir([folderPath '*.xlsx']);

% 创建一个空的单元格数组来存储所有数据
allData = cell(0);

% 循环处理每个Excel文件
for i = 1:length(fileList)
    % 构建文件的完整路径
    filePath = [folderPath fileList(i).name];
    
    % 读取第四列数据
    [~, ~, rawData] = xlsread(filePath);
    dataColumn = rawData(:, 4);
    
    % 将数据添加到allData中
    allData = [allData; dataColumn];
end

% 创建新的Excel文件并将数据写入其中
newFilePath = 'path/to/new_excel.xlsx';
xlswrite(newFilePath, allData);

请确保将`folderPath`更改为实际的文件夹路径,并将`newFilePath`更改为新的Excel文件路径。此代码将读取指定文件夹下的所有Excel文件中的第四列数据,并将数据写入一个新的Excel文件中。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 15:33:53 | 显示全部楼层
FishC 发表于 2024-5-22 15:32
如果所有的Excel文件都在同一个文件夹内,那么您可以使用`dir`函数获取该文件夹下的所有Excel文件,并 ...

错误使用 xlswrite
输入数组为空。

出错 sssssss (第 24 行)
xlswrite(newFilePath, allData);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 15:34:08 | 显示全部楼层
12345678zltsy 发表于 2024-05-22 15:33
错误使用 xlswrite
输入数组为空。

出错 sssssss  ...


抱歉,我不小心漏掉了一个重要的步骤。在将数据写入新的Excel文件之前,我们需要将数据转换为一个矩阵格式。下面是更新后的代码:


% 设置Excel文件所在文件夹路径
folderPath = 'path/to/excel/folder/';

% 获取文件夹下的所有Excel文件
fileList = dir(fullfile(folderPath, '*.xlsx'));  % 只获取后缀为.xlsx的文件,可以根据实际情况更改

% 创建一个空的矩阵来存储所有数据
allData = [];

% 循环处理每个Excel文件
for i = 1:length(fileList)
    % 构建文件的完整路径
    filePath = fullfile(folderPath, fileList(i).name);
   
    % 读取第四列数据
    [~, ~, rawData] = xlsread(filePath);
    dataColumn = cell2mat(rawData(:, 4));
   
    % 将数据合并到allData中
    allData = [allData; dataColumn];
end

% 创建新的Excel文件并将数据写入其中
newFilePath = 'path/to/new_excel.xlsx';
xlswrite(newFilePath, allData);

请确保将`folderPath`更改为实际的文件夹路径,并将`newFilePath`更改为新的Excel文件路径。此代码将读取指定文件夹下的所有Excel文件中的第四列数据,并将数据合并到一个矩阵中,然后将数据写入一个新的Excel文件中。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 15:35:15 | 显示全部楼层
FishC 发表于 2024-5-22 15:34
抱歉,我不小心漏掉了一个重要的步骤。在将数据写入新的Excel文件之前,我们需要将数据转换为一个矩阵 ...

错误使用 xlsread
无法激活 Excel 工作表。

出错 sssssss (第 15 行)
    [~, ~, rawData] = xlsread(filePath);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 15:37:35 | 显示全部楼层    本楼为最佳答案   
12345678zltsy 发表于 2024-05-22 15:35
错误使用 xlsread
无法激活 Excel 工作表。

出错  ...


对不起,看样子您遇到了一个无法激活 Excel 工作表的问题。这可能是由于您的电脑上没有安装 Microsoft Office 或者 MATLAB 无法与 Excel 进行交互所导致的。让我们尝试一个不需要激活 Excel 工作表的解决方案。

您可以尝试使用 `readmatrix` 函数来读取 Excel 文件中的数据。下面是更新后的代码:
% 设置Excel文件所在文件夹路径
folderPath = 'path/to/excel/folder/';

% 获取文件夹下的所有Excel文件
fileList = dir(fullfile(folderPath, '*.xlsx'));  % 只获取后缀为.xlsx的文件,可以根据实际情况更改

% 创建一个空的矩阵来存储所有数据
allData = [];

% 循环处理每个Excel文件
for i = 1:length(fileList)
    % 构建文件的完整路径
    filePath = fullfile(folderPath, fileList(i).name);
    
    % 读取第四列数据
    dataColumn = readmatrix(filePath);
    dataColumn = dataColumn(:, 4);
    
    % 将数据合并到allData中
    allData = [allData; dataColumn];
end

% 创建新的Excel文件并将数据写入其中
newFilePath = 'path/to/new_excel.xlsx';
xlswrite(newFilePath, allData);

请确保将 `folderPath` 更改为实际的文件夹路径,并将 `newFilePath` 更改为新的 Excel 文件路径。此代码将读取指定文件夹下的所有 Excel 文件中的第四列数据,并将数据合并到一个矩阵中,然后将数据写入一个新的 Excel 文件中。这种方法不需要激活 Excel 工作表,可以解决无法激活工作表的问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表