You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB 2015a绘图求助:代码无法正常显示图形

MATLAB绘图不显示问题解决

问题根源

你代码里先定义了符号变量t,之后又给t赋值数值数组,导致symsum无法正确处理数值数组,最终生成的y是符号表达式而非数值数组,plot函数无法直接绘制符号对象。

修正后的代码

clear all; close all;
syms k
I_0=1; mu=1.5; lambda=0.3; gamma=0.1;
t=0:1:20;
% 用独立符号变量s定义表达式,避免与数值t冲突
syms s
y_sym = I_0*symsum((-lambda*s^(mu))^k/(2^((k*(k-1)*mu)/2)*factorial(k*mu)),k,0,Inf) + ...
        gamma*symsum(((-lambda)^(k-1)*(s^(k*mu)))/(2^((k*(k-1)*mu)/2)*factorial(k*mu)),k,1,Inf);
% 把符号表达式转成可计算数值的匿名函数
y_fun = matlabFunction(y_sym);
% 遍历t数组计算每个点的y值
y = arrayfun(y_fun, t);

plot(t,y,'-+');
grid on
xlabel('time t');
ylabel('I(t)');

关键修改说明

  • 拆分符号变量与数值变量:用s作为符号变量定义求和表达式,避免和数值数组t重名导致的冲突
  • 符号转数值:通过matlabFunction将符号表达式转为可计算的函数,再用arrayfun逐个计算t中每个元素对应的y值,得到plot能识别的数值数组

内容的提问来源于stack exchange,提问作者Ola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:48:30