Matlab 提示错误使用plot 向量长度必须相同 应该怎么改正呀
可以检查一下plot的两个向量的维度,如果没问题的话可以发一下截图,提供更多信息。
plot:plot(data(1:end,1:end),'DisplayName','data(1:end,1:end)')
%% prepare data in excel
data_file = 'data.xlsx'
%% read data from a certain sheet
data1 = xlsread(data_file, 1); % first sheet
data2 = xlsread(data_file, 2); % second sheet
%% plot
plot1 = plot(data1(1:end,1:end),'DisplayName','data(1:end,1:end)');
%% prepare data in excel
data_file = 'data.xlsx'
%% read data from a certain sheet
data1 = xlsread(data_file, 1); % first sheet
data2 = xlsread(data_file, 2); % second sheet
%% plot
plot2 = plot(data2(1:end,1:end),'DisplayName','data(1:end,1:end)');
答案:
当调用Matlab的plot函数时,有时会出现“向量长度必须相同”的错误提示,这是因为在使用plot函数时,输入的x和y的长度不一致所导致的。解决这个问题的方法有以下几种:
1.检查输入的x和y的长度是否一致,如果长度不一致,需要将它们的长度调整到一致,可以使用Matlab内置的函数,如interp1或resample等来进行插值。
2.如果x是一个矩阵,y是一个向量,则需要使用repmat函数将y扩展到与x同样大小的矩阵,例如:
x = [1 2 3; 4 5 6];
y = [1 2 3];
y = repmat(y, size(x, 1), 1);
plot(x, y);
3.可以使用for循环来依次绘制不同的曲线,例如:
x = 1:10;
y1 = sin(x);
y2 = cos(x);
hold on %多图作画时需要添加
for i = 1:length(x)
plot([x(i) x(i)], [y1(i) y2(i)], 'k-'); %绘制每个点的连线
end
以上是我对这个问题的解决方法,希望能对你有所帮助。