2401_84247238 2024-05-29 09:42 采纳率: 0%
浏览 65

matlab命令行输入做图命令报错,错误提示为输入参数太多

img

img


显示输入参数过多,试了各种方法都无法做出图像,在SIMULINK里也找不出问题,还望友友们指点!

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-29 09:42
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试使用MATLAB的plot函数绘制图形,但遇到了“输入参数太多”的错误。这个错误通常发生在你传递给plot函数的参数数量超过了它期望的数量。在基本的plot函数中,你通常会提供两个向量作为输入,第一个是x轴的数据,第二个是y轴的数据。

    根据你提供的信息,你似乎在尝试用outode或者touty_ode来创建图形。然而,这些变量名并没有清晰地反映出它们是什么类型的变量,或者它们是如何从SIMULINK模型中获取的。

    为了帮助你解决问题,我们需要知道以下几个关键点:

    1. outode,或者touty_ode是从SIMULINK模型中得到的哪些信号?
    2. 这些信号是在何处被定义的?例如,它们是否是线性方程求解器、ODE求解器或其他模块的输出?

    如果你能提供一些关于SIMULINK模型的详细信息,尤其是与这两个信号相关的部分,那么我可以更准确地指导你如何提取和绘制这些数据。不过,基于现有的信息,我可以给你一个一般性的建议。

    首先,确保你已经正确地将SIMULINK模型的结果保存到工作空间。这通常通过在SIMULINK模型中的信号连接上右键点击,然后选择“To Workspace”,为信号分配一个名字,比如touty_ode

    然后,你需要确保tout是一个时间向量,而y_ode是一组随时间变化的值。你可以这样调用plot函数:

    plot(tout, y_ode);
    

    如果上述步骤没有解决你的问题,那可能是因为你的变量不是预期的类型,或者它们包含多个数据系列。在这种情况下,你可以尝试分别查看size(out)size(ode)size(tout)size(y_ode),确认它们是否都是向量,并且长度相同。

    如果你的模型有多个输出,并且你想在同一张图上绘制所有这些输出,你可以考虑使用hold on命令,以便在一个图上叠加多个曲线。但是,这要求所有的输出都对应于相同的t时刻。示例代码如下:

    figure;
    hold on;
    for i = 1:length(outputs)
        subplot(2, 1, i); % 假设你有两个输出,所以这里是两行一列的子图
        plot(outputs{i}, 'DisplayName', ['Series ' num2str(i)]);
    end
    legend('show');
    hold off;
    

    这里假设outputs是一个结构体数组,其中每个元素代表一个输出信号。

    如果你仍然遇到问题,请提供SIMULINK模型中与这些信号相关联的具体模块截图,以及你的MATLAB代码片段,这样我就能给出更具体的指导。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月29日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?