Excel表格内容如下(文件名为:AUV线圈3的数据.xlsx)
代码如下:
clc;clear% 读取Excel文件filename = 'AUV线圈3的数据.xlsx';opts = detectImportOptions(filename);opts.VariableNamingRule = 'preserve'; % 设置保留原始列名data = readtable(filename, opts);% 提取数据列angles = data{:, '角度'}; % 确保列名与Excel文件中的完全匹配M11 = data{:, 'M11'};receptionInductance = data{:, '接受自感和'};couplingCoefficient = data{:, '耦合系数'};% 创建一个新的图窗口figure;% 绘制左纵坐标数据yyaxis left;plot(angles, M11, '-o', 'DisplayName', 'M11', 'LineWidth', 1.5);hold on;plot(angles, receptionInductance, '-x', 'DisplayName', '接收自感和', 'LineWidth', 1.5);ylabel('M11 和 接收自感和');grid on;% 绘制右纵坐标数据yyaxis right;plot(angles, couplingCoefficient, '-s', 'DisplayName', '耦合系数', 'LineWidth', 1.5);ylabel('耦合系数');% 设置图表标题和轴标签title('角度 vs M11, 接收自感和, 和 耦合系数');xlabel('角度 (度)');% 显示图例legend('show');% 调整图表属性set(gca, 'FontSize', 12);% 保存图表为PNG文件saveas(gcf, '科研图.png');% 显示图表hold off;
这段MATLAB代码旨在从Excel文件中导入数据,并使用这些数据来绘制图表,显示不同角度下的电磁参数(如耦合系数和自感值)的变化。
以下是每个代码部分的详细解释
### 1. 初始化和清理环境
clc; clear;
- `clc`:清除命令窗口的内容,提供一个干净的界面。
- `clear`:删除所有变量,释放工作空间,避免数据污染。
### 2. 读取Excel文件
filename = 'AUV线圈3的数据.xlsx';opts = detectImportOptions(filename);opts.VariableNamingRule = 'preserve'; % 设置保留原始列名data = readtable(filename, opts);
- `filename`:指定要读取的Excel文件名。
- `detectImportOptions(filename)`:检测并创建适合读取指定Excel文件的导入选项。
- `opts.VariableNamingRule = 'preserve'`:设置选项以保留Excel文件中的原始列名,有助于后续按名称访问列。
- `readtable(filename, opts)`:根据指定的选项读取Excel文件,返回表格格式的数据。
### 3. 提取数据列
angles = data{:, '角度'};M11 = data{:, 'M11'};receptionInductance = data{:, '接受自感和'};couplingCoefficient = data{:, '耦合系数'};
- 从数据表`data`中提取特定列到各个变量中。这些变量后续用于图表的绘制。
### 4. 绘图准备和绘制数据
figure;yyaxis left;plot(angles, M11, '-o', 'DisplayName', 'M11', 'LineWidth', 1.5);hold on;plot(angles, receptionInductance, '-x', 'DisplayName', '接收自感和', 'LineWidth', 1.5);ylabel('M11 和 接收自感和');grid on;yyaxis right;plot(angles, couplingCoefficient, '-s', 'DisplayName', '耦合系数', 'LineWidth', 1.5);ylabel('耦合系数');
- `figure`:创建一个新的图形窗口。
- `yyaxis left` 和 `yyaxis right`:在同一图形中设置双Y轴。左Y轴用于显示`M11`和`接收自感和`,右Y轴用于显示`耦合系数`。
- `plot`:绘制数据点。不同的标记(`-o`, `-x`, `-s`)和线条用来区分不同的数据集。
### 5. 设置图表属性和显示图例
title('角度 vs M11, 接收自感和, 和 耦合系数');xlabel('角度 (度)');legend('show');set(gca, 'FontSize', 12);
- `title`, `xlabel`, `ylabel`:设置图表的标题和坐标轴标签。
- `legend('show')`:显示图例,帮助识别不同的数据系列。
- `set(gca, 'FontSize', 12)`:设置当前坐标轴的字体大小。
### 6. 保存和结束绘图
saveas(gcf, '科研图.png');hold off;
- `saveas(gcf, '科研图.png')`:将当前图形保存为PNG格式的文件。
- `hold off`:结束绘图,不再添加新的图形元素。