matlab读取数据绘制曲线图
时间: 2025-06-20 16:23:32 浏览: 10
### 使用 MATLAB 读取数据并生成曲线图表
#### 数据读取部分
MATLAB 提供了多种方式从外部源(如 Excel 文件)读取数据。以下是两种主要方法:
1. **使用 `xlsread` 函数**
这是一个内置函数,可以直接从 Excel 文件中读取数值型和字符型数据[^2]。例如:
```matlab
% 假设有一个名为 data.xlsx 的文件,其中 A 列存储角度值,B 列存储 M11 值
filename = 'data.xlsx';
sheet = 1;
angles = xlsread(filename, sheet, 'A:A'); % 读取角度值
M11 = xlsread(filename, sheet, 'B:B'); % 读取 M11 值
% 如果有其他列的数据也可以类似处理
```
2. **通过 COM 方法连接 Excel**
此方法适用于更复杂的操作场景,比如动态修改 Excel 表格内容或绘制图表。以下是如何初始化 COM 对象并获取数据的一个简单例子:
```matlab
excelApp = actxserver('Excel.Application');
workbook = excelApp.Workbooks.Open(fullfile(pwd, 'data.xlsx'));
worksheet = workbook.Sheets.Item(1);
rangeAngles = worksheet.Range('A1:A' + num2str(worksheet.UsedRange.Rows.Count));
angles = cell2mat(rangeAngles.Value);
rangeM11 = worksheet.Range('B1:B' + num2str(worksheet.UsedRange.Rows.Count));
M11 = cell2mat(rangeM11.Value);
excelApp.Quit();
delete(excelApp);
clear excelApp workbook worksheet;
```
---
#### 曲线图绘制部分
一旦完成数据加载,就可以调用 MATLAB 的绘图功能创建可视化图形。
1. **单轴绘图**
可以使用简单的 `plot()` 函数来展示单一维度的关系。
```matlab
figure;
plot(angles, M11, '-o', 'DisplayName', 'M11', 'LineWidth', 1.5);
xlabel('角度 (°)');
ylabel('M11 值');
title('M11 随角度变化的趋势');
legend show;
grid on;
```
2. **双 Y 轴绘图**
当需要在同一张图上显示不同量纲的数据时,可采用 `yyaxis` 实现双纵坐标轴[^3]。
```matlab
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('耦合系数');
xlabel('角度 (°)');
title('多组数据随角度的变化趋势');
legend show;
```
3. **保存图像为 FIG 文件**
图像可以通过 `saveas` 或者 `print` 函数保存为 `.fig` 格式的文件[^1],以便日后重新载入和进一步分析。
```matlab
saveas(gcf, 'myPlot.fig');
```
---
#### 总结
上述流程展示了如何利用 MATLAB 完成从 Excel 中读取数据到生成复杂曲线图的过程。具体实现取决于实际需求以及输入数据的形式。
阅读全文
相关推荐


















