运行后,matlab显示错误使用 matlab.graphics.axis.Axes/get 类 Axes 的属性 XData 无法识别。 出错 movePoint (第 4 行) xData = get(point, 'XData'); 计算 Figure WindowButtonMotionFcn 时出错。
时间: 2024-04-10 16:34:29 浏览: 322
非常抱歉,我之前的回答中的代码有误。在MATLAB中,无法直接使用 `get` 函数来获取 `Axes` 对象的属性值。下面是修正后的代码:
在一个名为 `dragPoint.m` 的函数文件中定义 `dragPoint` 函数:
```matlab
function dragPoint(src, ~)
set(gcf, 'WindowButtonMotionFcn', @movePoint);
set(gcf, 'WindowButtonUpFcn', @stopDragging);
end
```
在一个名为 `movePoint.m` 的函数文件中定义 `movePoint` 函数:
```matlab
function movePoint(~, ~)
point = gca;
currentPoint = get(gca, 'CurrentPoint');
xData = point.XData;
yData = point.YData;
[~, idx] = min(abs(xData - currentPoint(1, 1)));
yData(idx) = currentPoint(1, 2);
point.YData = yData;
end
```
在一个名为 `stopDragging.m` 的函数文件中定义 `stopDragging` 函数:
```matlab
function stopDragging(~, ~)
set(gcf, 'WindowButtonMotionFcn', '');
set(gcf, 'WindowButtonUpFcn', '');
end
```
然后在脚本文件中调用这些函数:
```matlab
% 创建初始曲线
x = linspace(-10, 10, 100);
y = 1/3 * x;
% 绘制初始曲线
figure;
h = plot(x, y);
title('移动点以改变曲线形状');
xlabel('x');
ylabel('y');
% 添加拖动功能
set
阅读全文