% 清除之前的变量和图形窗口 clear; close all; % 读取数据 filename = 'C:\Users\sure\Documents\MATLAB\ActiveRecording.csv'; % 数据文件路径 % 从CSV文件中读取数据 data = csvread(filename, 2, 0); % 从第三行开始读取数据 % 提取分类数据 beforeData = data(:, [1 3 2]); % 交换Z轴和Y轴数据的顺序 noShearData = data(:, [4 6 5]); % 交换Z轴和Y轴数据的顺序 shearUnfixedData = data(:, [7 9 8]); % 交换Z轴和Y轴数据的顺序 shearFixedData = data(:, [10 12 11]); % 交换Z轴和Y轴数据的顺序 % 创建一个2行3列的图形窗口 figure; % 绘制before类别图形 subplot(2, 3, [2, 3]); plot(beforeData(:, 1), -beforeData(:, 2), 'r-'); axis square; % 设置轴为正方形 xlabel('X'); ylabel('Y'); % 将Y轴改为Z轴 title('Before'); grid on; % 绘制No Shear类别图形 subplot(2, 3, 4); plot(noShearData(:, 1), noShearData(:, 2), 'g-'); axis square; % 设置轴为正方形 xlabel('X'); ylabel('Y'); % 将Y轴改为Z轴 title('No Shear'); grid on; % 绘制Shear Unfixed类别图形 subplot(2, 3, 5); plot(shearUnfixedData(:, 1), shearUnfixedData(:, 2), 'b-'); axis square; % 设置轴为正方形 xlabel('X'); ylabel('Y'); % 将Y轴改为Z轴 title('Shear Unfixed'); grid on; % 绘制Shear Fixed类别图形 subplot(2, 3, 6); plot(shearFixedData(:, 1), shearFixedData(:, 2), 'm-'); axis square; % 设置轴为正方形 xlabel('X'); ylabel('Y'); % 将Y轴改为Z轴 title('Shear Fixed'); grid on; % 调整图形窗口大小和布局 set(gcf, 'Position', [100, 100, 1200, 800]);这个代码修改成使用boundary
时间: 2024-01-12 07:05:45 浏览: 80
好的,下面是使用 `boundary` 函数绘制边界的代码:
```matlab
% 清除之前的变量和图形窗口
clear; close all;
% 读取数据
filename = 'C:\Users\sure\Documents\MATLAB\ActiveRecording.csv'; % 数据文件路径
% 从CSV文件中读取数据
data = csvread(filename, 2, 0); % 从第三行开始读取数据
% 提取分类数据
beforeData = data(:, [1 3 2]); % 交换Z轴和Y轴数据的顺序
noShearData = data(:, [4 6 5]); % 交换Z轴和Y轴数据的顺序
shearUnfixedData = data(:, [7 9 8]); % 交换Z轴和Y轴数据的顺序
shearFixedData = data(:, [10 12 11]); % 交换Z轴和Y轴数据的顺序
% 创建一个2行3列的图形窗口
figure;
% 绘制before类别图形
subplot(2, 3, [2, 3]);
k = boundary(beforeData(:, [1, 3])); % 计算beforeData的边界点
plot(beforeData(:, 1), beforeData(:, 3), 'r.', 'MarkerSize', 10);
hold on;
plot(beforeData(k, 1), beforeData(k, 3), 'r', 'LineWidth', 2);
axis equal;
xlabel('X'); ylabel('Z'); title('Before'); grid on;
% 绘制No Shear类别图形
subplot(2, 3, 4);
k = boundary(noShearData(:, [1, 2])); % 计算noShearData的边界点
plot(noShearData(:, 1), noShearData(:, 2), 'g.', 'MarkerSize', 10);
hold on;
plot(noShearData(k, 1), noShearData(k, 2), 'g', 'LineWidth', 2);
axis equal;
xlabel('X'); ylabel('Y'); title('No Shear'); grid on;
% 绘制Shear Unfixed类别图形
subplot(2, 3, 5);
k = boundary(shearUnfixedData(:, [1, 2])); % 计算shearUnfixedData的边界点
plot(shearUnfixedData(:, 1), shearUnfixedData(:, 2), 'b.', 'MarkerSize', 10);
hold on;
plot(shearUnfixedData(k, 1), shearUnfixedData(k, 2), 'b', 'LineWidth', 2);
axis equal;
xlabel('X'); ylabel('Y'); title('Shear Unfixed'); grid on;
% 绘制Shear Fixed类别图形
subplot(2, 3, 6);
k = boundary(shearFixedData(:, [1, 2])); % 计算shearFixedData的边界点
plot(shearFixedData(:, 1), shearFixedData(:, 2), 'm.', 'MarkerSize', 10);
hold on;
plot(shearFixedData(k, 1), shearFixedData(k, 2), 'm', 'LineWidth', 2);
axis equal;
xlabel('X'); ylabel('Y'); title('Shear Fixed'); grid on;
% 调整图形窗口大小和布局
set(gcf, 'Position', [100, 100, 1200, 800]);
```
本代码中,使用 `boundary` 函数计算了每个数据集的边界点,并在图形上绘制了出来。由于 `boundary` 函数只能处理 2D 或 3D 的数据,因此我们需要分别对 XZ 和 XY 平面上的数据进行处理。
阅读全文