错误使用 sdpvar/plot (第 75 行) Second argument should be a domain defining SET object. 出错 FANG1 (第 190 行) plot(Ts,x1);
时间: 2024-02-23 16:57:42 浏览: 241
这个错误提示通常是由于在调用MATLAB的plot函数时,第二个参数不是一个定义了区域的SET对象所导致的。这可能是由于您提供的参数不是有效的参数类型或格式不正确所导致的。建议您检查第二个参数是否正确定义了SET对象,或者在调用plot函数时是否使用了正确的参数类型。您也可以查看MATLAB的帮助文档以获取更多关于plot函数的信息。
相关问题
错误使用 plot 向量长度必须相同。 出错 demo (第 38 行) plot(times, y_tra);
出现这个错误的原因是`times`和`y_tra`的长度不一致,而`plot`函数要求输入的向量长度必须相同。
在这段代码中,我们生成了一个长度为101的时间向量`times`,但是`y_tra`数组的长度是102(因为我们在循环中将机器人的y坐标添加到了`y_tra`数组中)。
为了解决这个问题,我们可以对`y_tra`数组进行修剪,使其长度与`times`相同。具体来说,我们可以修改循环中的代码如下:
```matlab
for ith = 1:100
% 计算误差
error = goal(2) - robot.y;
% 计算积分误差
integral_error = integral_error + error;
% 计算微分误差
derivative_error = error - y_tra(end-1);
% 计算控制量
steering = Kp * error + Ki * integral_error + Kd * derivative_error;
robot.move(steering, 1);
% 修改这个
y_tra(end) = robot.y;
end
% 修改这个
y_tra = y_tra(1:end-1);
times=0:100;
plot(times, y_tra);
hold on;
plot(times, zeros(1, 101));
```
在上述代码中,我们在循环中将机器人的y坐标添加到了`y_tra`数组中,但是在循环结束后,我们将`y_tra`数组的最后一个元素舍弃,使其长度与`times`相同。
这样,我们就可以成功地绘制出机器人的y轨迹了。
错误使用 plot 向量长度必须相同。 出错 Untitled (第 4 行) plot(dates,data);
这个错误是由于在绘制图形时,dates和data的长度不一致导致的。请确保dates和data的长度相同。可以通过以下几种方法来解决这个问题:
1. 检查dates和data的长度是否相同,如果不同请进行调整。
2. 如果数据量较大,可以对数据进行采样,使得数据长度相同。
3. 可以使用插值方法来填充缺失的数据,使得dates和data的长度相同。
4. 如果数据量很大,可以考虑使用更高级别的绘图库,例如matplotlib,它可以自动处理不同长度的数据。