MATLAB绘图错误:矩阵维度不匹配及解决方法

在使用MATLAB的plot函数绘图时,可能会遇到'由于矩阵 f 和向量 C 的尺寸不匹配,导致了错误的绘图尝试'的错误。这通常是由于传递给plot函数的矩阵或向量的维度不一致导致的。

错误分析

以代码plot(C, f(1:end-1, n), 'LineWidth', 2);为例,如果C是1×301的矩阵,而f是151×151的矩阵,则会出现维度不匹配的错误。因为plot函数要求横坐标和纵坐标的长度一致,而这里C的长度为301,f(1:end-1, n)的长度为150,所以无法绘图。

解决方法

为了解决这个问题,我们需要调整C的长度,使其与f的行数一致。在本例中,可以将C的步长改为0.1,使其长度变为151。

修正后的代码MATLAB% 清空工作空间clear;clc;

% 定义参数和初始条件L = 15;N = 150;dx = L / N;dt = 0.1;u = -0.5;C = 0:0.1:15; % 修改C的步长

% 初始化矩阵f = zeros(N + 1, 151);f(100:120, 1) = 3;

% 设定边界条件f(1, :) = 0;f(N + 1, :) = 0;

% 数值求解for n = 1:150 for i = 1:N f(i, n + 1) = f(i, n) - u * dt / dx * (f(i + 1, n) - f(i, n)); endend

% 可视化结果figure;

for n = 1:151 plot(C, f(:, n), 'LineWidth', 2); axis([0 L 0 3.5]); xlabel('x'); ylabel('u(x, t)'); title('22334146 - Yilia'); pause(0.1); % 添加延迟以观察动态效果end

总结

在使用MATLAB进行绘图时,务必注意检查传递给绘图函数的矩阵或向量的维度是否匹配。如果出现维度不匹配的错误,可以通过调整矩阵或向量的长度来解决。


原文地址: https://www.cveoy.top/t/topic/UQA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录