错误使用 plot 向量长度必须相同。 出错 Tsolve (第 64 行) plot(xx, y, 'LineWidth', 2);
时间: 2024-01-31 08:04:49 浏览: 77
plot的调用格式-matlab绘图
这个错误提示表明在绘制函数图像时,横坐标向量和纵坐标向量的长度不相同。在给定的代码中,`xx` 和 `y` 的长度应该是相同的,因为它们分别对应于函数的横坐标和纵坐标。
原因是在代码中 `xx` 变量的定义中,`x` 和 `y` 应该是按照相同的方式进行复制,以便获得相同长度的向量。
具体地,应该将 `repmat(x, y, N)` 改为 `repmat(x, 1, N)`,将 `repmat(y, x, N)` 改为 `repmat(y, 1, N)`。这样可以保证 `xx` 和 `y` 的长度相同,以便绘制函数图像。
修改后的代码如下:
```matlab
T1 = T2 = T3 = T4 = 1; % 定义周期
x = [0, T1, T1, T1+T4, T1+T4, T]; % 定义矩形波的横坐标
y = [1, 1, 0, 0, 1, 1]; % 定义矩形波的纵坐标
rectangle('Position', [T1, 0, T2-T1, 1], 'FaceColor', 'blue'); % 绘制矩形波
N = 1000;
xx = repmat(x, 1, N); % 绘制周期函数的横坐标
y = repmat(y, 1, N); % 绘制周期函数的纵坐标
plot(xx, y, 'LineWidth', 2);
axis([T1, T4, -0.5, 1.5]);
xlabel('Time');
ylabel('Value');
title('Periodic Function');
```
运行修改后的代码,将会得到一个周期函数的图像,其中包含一个蓝色的矩形波。
阅读全文