找回密码
 注册
关于网站域名变更的通知
查看: 491|回复: 1
打印 上一主题 下一主题

编写的plot语句报错了。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-25 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
% U8 O( e0 O; V+ d) A7 ]/ j1 O
! k1 E; {+ M+ b7 H$ M5 r
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:+ i5 G3 s7 {+ F
错误使用 plot。
& w7 ?! t( w( a: K" Q' s- M2 Q; s数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。2 W& s' f2 C/ w7 x
* H$ Y# c4 D$ T3 x9 T
出错 Untitled3 (line 3)8 z2 g8 K: H  [  M( Y
plot(y,c(:,1));9 C# |9 ?" y& I! \7 C# A

2 l* ~, k1 s, Z8 `2 V' H以下是程序,使用的64位R2018。" @+ h3 P, A/ q
y=9.9:0.01:10.1;: H5 x8 [3 S8 ?- w  B1 m( _5 }8 i5 R
c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);7 U+ v+ v* s, Q4 w6 F! N
plot(y,c(:,1));
8 n" Z( t) ~6 p; {. I9 fplot(y,c(:,2));9 P! ~& l  a. B; g' r+ f9 K
plot(y,c(:,3));
( J  W4 M2 W) H2 Vfunction x = Solve3Polynomial(a,b,c,d)3 R9 I& V& X* ~; |
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.$ m1 X/ E7 P! ~4 L
syms x1 x2 x3;0 D& V; V# {. m
A = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end' ?) r: N+ Y1 A& A, G
B = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end
( h2 ?3 v* I7 X4 CC = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  
- s3 b( V  I& {$ FDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  7 P  n  g6 |2 K; {  n% @9 f6 b
if (A==0)&(B==0)
% u' _5 I2 @3 J6 x) T    x1 = -c./b;      x2 = x1 ;    x3 = x1;7 I; r% v% \9 ]7 Y) y
end
5 m3 O" \5 {; B2 `0 _6 |; nif DET > 0, T5 Z/ ^, v* }$ i0 n* L9 Q- w
    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
# M( c& u+ X' a7 P& D3 p; I0 T$ |    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));
1 f, W( g8 l5 e3 w    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);+ y# X/ C" J$ O9 [
    x1 = (-b-y1-y2)./(3.*a);
6 A2 \( F4 V, D3 q    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  
: ?9 T4 }5 m9 H" O3 B  ~: J$ T    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);1 P: ^2 }" S  y3 l* a
    x2 = 0;( o- L* }' j0 s8 y  U3 T
    x3 = 0;
/ _, p+ M0 v0 i/ I. M    clear Y1 Y2 y1 y2 vec1 vec2;
: @4 @3 a# w: pend" T6 r7 ]0 L& D$ C, V
if DET == 0 & (A ~= 0) & (B ~= 0)
1 U) F, U3 P7 q. R    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);
: h5 Q% B8 p0 i! l- s' G    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;3 M! r) H+ m0 d" L, n: q
end
5 j  w8 J3 l* v" m. Aif DET < 09 Y3 E, i* ?0 o2 V
    sqA = sqrt(A);
. f5 ?0 T, }; c# d+ Z    T = (A.*b - 1.5.*a.*B)./(A.*sqA);  C) ~- I0 D2 @* F8 T1 S
    theta = acos(T);" q( s% h" s/ I* I( i4 M
    csth  = cos(theta./3);! \* V7 f4 |4 o& x# Q& I
    sn3th = sqrt(3).*sin(theta./3);  {# n* k# _: i- ]
    x1 = (-b - 2.*sqA.*csth)./(3.*a);  o8 A; O, Y7 W$ P
    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
, _4 y; u, s# s7 |% q& l    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);2 N0 Y% C1 c; p2 }; }
    clear sqA T theta csth sn3th;
; k  s6 F, e, z) |0 |( O" Bend& _' @  A+ [* k# y% i" I+ k
x = [x1;  x2;  x3];3 X1 C% b" ?2 B3 E
end1 |' j+ B2 z/ ~9 t+ v& F) o$ Z* J
6 t$ a+ n& ?2 o1 n5 m
麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

2#
发表于 2020-11-25 18:40 | 只看该作者
提示说,数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。 所以你的数据是什么类型?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 10:13 , Processed in 0.171875 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表