你的判断语句书写是错误的(没有大括号)。应该为if (i==1601) Vn_err(i+1)=Vn_err(i)+difVn_err*TimeEach+5; 。。。endwww.mh456.com防采集。
你想说的是一个方程,可是程序里=并不是数学上的=。说以MATLAB对这句话的理解是把0赋给左边的表达式而不是相等的意思。如果你是想解方程,请用slove函数。如果你想判断是否相等用==(两个等号。)本回答被网友采纳
矩阵输入不用,直接换行就行,其实输了也可以的
把=0去掉就ok了
三个都是错的,赋值语句,右运算(从右向左运算),最后的值赋的值给了 = 号右边的变量;1.赋值运算一般编写的时候不常用连续赋值的,就算真的要连续赋值,也是右值也都应该是一个变量,故 a a=7+b+c=a+7 b a=7+b++=a+7 都是错的,连续赋值时,=
第三行,不能这样写方2113程等式。解决的办5261法,就是用4102solve()解出y的表达式,1653或解出对应于x的y值。对于本题,可以这样改x=0:0.01:1.5;for i=1:length(x)x0=x(i);u=0.01;syms y1y0=vpasolve(5*1.1003*y1^2+(1.1003*u^2)/y1==2*x0^2);y(i)=y0(1);endplot(x,y,'c-')xlabel('x'),ylabel('y')运行结果,神奇,求解方程直接写出来matlab就会帮你完成?,在matlab中不支持样的计算方式。只能在赋值的符号右侧出现需要计算的表达式。或者用solve()内容来自www.mh456.com请勿采集。