[已解决] 错误使用 plot 数据必须为可转换为双精度值的数值、日期时间、持续时间或数组

[复制链接]
君心今何在? 发表于 2022-11-20 09:50:05
这是我的代码,错误处在plot,我想研究m随时间t的变化情况,观察在第几年时m降到m0以下。谢谢万能的网友们的帮助。
m=dsolve('Dm=(m0/6)-m/3','m(0)=5*m0')
year=1:20
y=m
plot(year,y)
set(gca,'xtick',(2000:1:2020))
ylim([0 10*m0])


最佳答案


TouAkira 发表于 2022-11-20 10:15:44
改成
syms m( t ) m0
Sol_m = dsolve( [ diff( m ) == m0 / 6 - m / 3 ], [  m( 0 ) == 5 * m0 ] );
Func_m = matlabFunction( Sol_m, 'vars', { t, m0 } ); % 把符号解,转为函数句柄
year = 1 : 20;
plot( year, Func_m( year, 1 ), 'ko-' ); % 计算 t =  year, m0 = 1 情形的数值
set( gca, 'xticklabels', ( 2001 : 1 : 2020 ) );
回复此楼

2 条回复


TouAkira 发表于 2022-11-20 10:15:44
改成
syms m( t ) m0
Sol_m = dsolve( [ diff( m ) == m0 / 6 - m / 3 ], [  m( 0 ) == 5 * m0 ] );
Func_m = matlabFunction( Sol_m, 'vars', { t, m0 } ); % 把符号解,转为函数句柄
year = 1 : 20;
plot( year, Func_m( year, 1 ), 'ko-' ); % 计算 t =  year, m0 = 1 情形的数值
set( gca, 'xticklabels', ( 2001 : 1 : 2020 ) );
回复此楼

君心今何在? 发表于 2022-11-20 10:26:11
TouAkira 发表于 2022-11-20 10:15
改成
syms m( t ) m0
Sol_m = dsolve( [ diff( m ) == m0 / 6 - m / 3 ], [  m( 0 ) == 5 * m0 ] );

谢谢你的帮助。:handshake
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表