MATLAB导出和导入Excel文件表格数据并处理

20250507

1.MATLAB使用table函数和writetable函数将数据导出Excel表格文件

我们以高斯函数为例子,高斯函数在数学和工程领域有着广泛的应用,它的一般形式为:

其中是均值,决定了函数的中心位置; 是标准差,决定了函数的宽度。

|------------|---------------------|----------------------------|
| 函数名 | 作用 | 示例 |
| table | 创建表格对象 | T = table(col1, col2, ...) |
| writetable | 将表格写入文件(Excel/CSV等) | writetable(T, 'file.xlsx') |
| fullfile | 跨平台拼接文件路径 | fullfile('folder', 'file') |
| exist | 检查文件/文件夹是否存在 | exist('path', 'dir') |
| mkdir | 创建新文件夹 | mkdir('new_folder') |
| uigetdir | 交互式选择文件夹路径 | folder = uigetdir() |

(1)创建表格:使用table函数将x和y数组组合成一个表格对象dataTable,并为两列数据指定列名Wavelength和Reflectivity。

(2)导出表格到 Excel:使用writetable函数将表格对象dataTable导出为名为SFBG_Reflectivity.xlsx的 Excel 文件。

复制代码
clc
clear
close all
% 设置参数
mu = 0; % 均值
sigma = 1; % 标准差
% 生成x值
x = linspace(-5, 5, 1000);
% 计算对应的y值
y = gaussian(x, mu, sigma);
% 绘制高斯函数图像
figure;
plot(x, y, 'b', 'LineWidth', 2);
title(['高斯函数: \mu = ', num2str(mu), ', \sigma = ', num2str(sigma)]);
xlabel('x');
ylabel('f(x)');
grid on;
% 导出数据到Excel表格
dataTable = table(x',y','VariableNames',{'x值','y值'});
% 指定导出文件的路径
output_folder = 'C:\Users\53609\Desktop\Test\20250507_Test_data\导出数据';
% 确保输出文件夹存在,如果不存在则创建
if ~exist(output_folder,'dir')
    mkdir(output_folder); %创建文件夹
end
output_filename = fullfile(output_folder, '高斯函数据.xlsx'); % 创建完整的数据路径
% 保存为新的Excel文件
writetable(dataTable, output_filename);
disp('MATLAB导出完成')
% 定义高斯函数
function y = gaussian(x, mu, sigma)
    y = (1 / (sigma * sqrt(2 * pi))) * exp(-((x - mu).^2) / (2 * sigma^2));
end

运行代码后,会在当前工作目录下生成一个Excel文件,其中包含两列数据,第一列是x,第二列是y。

2、MATLAB实现readtable函数实现Excel表格数据的导入

|---------------------|-----------------|------------------------------------------------------------------------------------------------------------------------|
| 函数名 | 作用 | 示例 |
| readtable | 将 Excel 数据读取为表格 | data = readtable('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:D10'); |
| xlsread | 读取数值和文本数据(旧版本) | [num, txt] = xlsread('data.xlsx', 'Sheet1', 'A1:D10'); |
| readmatrix | 读取数值矩阵 | matrix = readmatrix('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:D10'); |
| readcell | 读取混合类型数据为单元格数组 | cell_data = readcell('data.xlsx', 'Sheet', 'Sheet1'); |
| detectImportOptions | 检测并自定义导入选项 | opts = detectImportOptions('data.xlsx'); opts.SelectedVariableNames = {'A', 'C'}; data = readtable('data.xlsx', opts); |

readtable 函数用于读取 Excel 文件中的数据,并将其存储在一个表格对象 excel_file 中。

filename {:, 1} 表示提取表格中第一列的数据,存储在 x变量中。

filename {:, 2} 表示提取表格中第二列的数据,存储在 y变量中。

plot(x,y, 'b') 用于绘制以 x为横坐标,y为纵坐标的折线图,其中 'b' 表示蓝色线。

title、xlabel 和 ylabel 函数分别用于设置图表的标题、横坐标标签和纵坐标标签。

grid on 用于显示网格线,使图表更清晰

复制代码
clc
clear
close all
% 交互式表格数据读取与创建
input_folder = 'C:\Users\53609\Desktop\Test\20250507_Test_data\导出数据';
filename = fullfile(input_folder,'高斯函数据.xlsx');
% 检查文件是否存在
if exist(filename, 'file')
    data = readtable(filename, 'ReadVariableNames', false); % 假设无表头
    % 提取第一列数据
    first_column = data{:,1}; % 索引第一列
    % 提取第二列数据
    second_column = data{:, 2}; % 索引第二列
    disp('MATLAB导入完成')
end
x= first_column;
y = second_column;
figure;
plot(x, y, 'b', 'LineWidth', 2);
title(['高斯函数: \mu = ', num2str(mu), ', \sigma = ', num2str(sigma)]);
xlabel('x');
ylabel('f(x)');
grid on;

输出结果

相关推荐
叶子2024223 分钟前
判断题:可再生能源发电利用率指水电、风电、太阳能、生物质能等非化石能源占一次能源消费总量的比重。 这句话为什么错误
大数据·人工智能·能源
好学且牛逼的马6 分钟前
【Hot100 | 6 LeetCode 15. 三数之和】
算法
橘颂TA8 分钟前
【剑斩OFFER】算法的暴力美学——二分查找
算法·leetcode·面试·职场和发展·c/c++
leo__52016 分钟前
MATLAB实现高光谱分类算法
支持向量机·matlab·分类
放羊郎18 分钟前
基于ROS2的语义格栅地图导航
人工智能·slam·建图·激光slam
盼小辉丶21 分钟前
Transformer实战(24)——通过数据增强提升Transformer模型性能
人工智能·深度学习·自然语言处理·transformer
lkbhua莱克瓦2429 分钟前
Java基础——常用算法4
java·数据结构·笔记·算法·github·排序算法·快速排序
悟乙己35 分钟前
LangExtract + 知识图谱 — Google 用于 NLP 任务的新库
人工智能·自然语言处理·知识图谱
lpfasd12336 分钟前
GEO崛起与AI信任危机:数据源安全如何守护智能时代的基石?
大数据·人工智能·安全
Allen正心正念202538 分钟前
提升大语言模型性能的关键技术清单(from 网络)
人工智能·语言模型·自然语言处理