matble向量长度必须相同

Matlab 提示错误使用plot 向量长度必须相同 应该怎么改正呀

可以检查一下plot的两个向量的维度,如果没问题的话可以发一下截图,提供更多信息。

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7644802
  • 这篇博客也不错, 你可以看下初级Matlab画图经验简单记录以及错误使用plot矢量长度必须相同问题解决
  • 除此之外, 这篇博客: 【Matlab】根据excel画折线图和柱状图中的 折线图(plot) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • plotplot(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)'); 
    

    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    答案:

    当调用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
    

    以上是我对这个问题的解决方法,希望能对你有所帮助。