我的代码在旧版本2017是正确的,可以用,但是换到2019a版本,就各种报错,请各位大佬帮帮忙,感激不尽,求赐教
《情况1》图画不出来,报错
if x(i+1)~=x(i)
eq=sprintf('y=%g+(%g-%g)/(%g-%g)*(x-%g)',y(i),y(i+1),y(i),x(i+1),x(i),x(i));
[x3,y3]=solve([y==(1.0927)*x+(-0.0309)],[eq]);
这么写的时候,报错为错误使用 solve (line 240)
没有为 'y=0.00529+(0.00529-0.00529)/(0.17548-0.17556)*(x-0.17556)' 提供值。名称-值对组参数需要一个名称并后跟一个值。
出错 text2 (line 13)
[x3,y3]=solve([y==(1.0927)*x+(-0.0309)],[eq]);
《情况2》图能正常画出来,但报错
eq=sprintf('y=%g+(%g-%g)/(%g-%g)*(x-%g)',y(i),y(i+1),y(i),x(i+1),x(i),x(i) );
[x3,y3]=solve(eq,'y=(30.4618)*x+(-9.8206)');
报错为:错误使用 solve>getEqns (line 418)
List of equations must not be empty.
出错 solve (line 226)
[eqns,vars,options] = getEqns(varargin{:});
出错 text2 (line 17)
[x3,y3]=solve(eq,'y=(30.4618)*x+(-9.8206)');
我的感觉是,不同版本的,语句规则不一样,但是我不知道具体该如何改,希望大佬帮帮忙,指出问题
全部代码如下:
x=[0.17556 0.17548 0.1754 0.17532 0.17524 0.17516 0.17509 0.17501 0.17494 0.17488 0.17482 0.17477 0.17472 0.17466 0.17459 0.17451 0.17441 0.17431 0.17422 0.17416 0.17411 0.17409 0.17407 0.17406 0.17404 0.17401 0.17397 0.17393 0.17389 0.17384 0.1738 0.17376 0.1737 0.17366 0.17361 0.17356 0.17351 0.17347 0.17342 0.17338 0.17334 0.17329 0.17324 0.17317 0.1731 0.17302 0.17293 0.17284 0.17275 0.17266 0.17258 0.17249 0.17239 0.1723 0.17219 0.17209 0.17198 0.17187 0.17174 0.17159 0.17141 0.17121 0.17099 0.17077 0.17054 0.1703 0.17005 0.16978 0.1695 0.1692 0.16888 0.16853 0.16815 0.16775 0.16733 0.1669 0.16645 0.16598 0.16548 0.16496 0.16441 0.16383 0.16321 0.16255 0.16185 0.16111 0.16031 0.15947 0.15857 0.15763 0.15664 0.1556 0.15452 0.1534 0.15222 0.15099 0.14969 0.14834 0.14693 0.14547 0.14396 0.14241 0.1408 0.13912 0.13737 0.1355 0.13351 0.13137 0.12909 0.12666 0.12412 0.12147 0.1187 0.11581 0.11278 0.1096 0.10625 0.10278 0.09913 0.09531 0.09129 0.08708 0.08268 0.07812 0.07344 0.06871 0.06399 0.05932 0.06467 0.05003 0.04539 0.04076 0.0362 0.03176 0.02749