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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
7 D% f5 |# ~  q6 P+ z/ X
* |1 I' k& p3 b5 ~
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:* b) k# I: P% W. w2 F
错误使用 plot。* ]. W$ D( F& @
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。+ h# B: ^+ b, N# Y. r8 I' `

3 O' Y$ }( y$ v/ w% Y& g; \/ P出错 Untitled3 (line 3)
9 c- _  Z. N  K" k; t. Uplot(y,c(:,1));
* G4 n$ ?+ |  C" U7 X2 `; T+ z  E6 T/ p  z/ D6 L" f
以下是程序,使用的64位R2018。
$ b# B! s# O$ d, A& Uy=9.9:0.01:10.1;% x( }" v9 Y  {" }$ A/ s. g1 A/ b4 l
c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);
# b1 w+ d" K6 ?( hplot(y,c(:,1));
* Z$ @4 b5 |. A" ]plot(y,c(:,2));
: L, H7 S4 R* l  U4 g# I1 eplot(y,c(:,3));
1 P' ]& ]1 O# Ifunction x = Solve3Polynomial(a,b,c,d)3 p: \# w  _3 D6 Q  b/ m9 ~
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.
3 J% W# j4 |. N8 O4 @7 Lsyms x1 x2 x3;
1 e; ~+ ?- U2 X$ w" vA = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end
6 l. w# ~6 j: h( h) UB = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end" s& k( `- h* g9 I; l" ]+ g
C = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  0 h. R8 R2 _) E) J+ {- h
DET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  
& |0 o5 @2 n4 \" O2 kif (A==0)&(B==0)0 w5 m' s9 b- N' V# W  B
    x1 = -c./b;      x2 = x1 ;    x3 = x1;
; @7 _9 k2 X9 O+ r, [6 nend
; G( y  O1 x2 Wif DET > 0
7 _8 o( a0 e$ t% G/ P: ^, Y    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
0 Z, F/ w4 {3 Z    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));
  v" g- m. ]9 C$ A    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);8 T9 }1 M& U4 o; k
    x1 = (-b-y1-y2)./(3.*a);) E1 J5 i, K7 \
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  
/ S4 \) k( \/ \6 e! U    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);
% g3 ]. c3 Q% q; @2 G9 N    x2 = 0;; A  p# u8 ]% t" K% Q% q# Z
    x3 = 0;
9 ^6 ~1 H6 `8 i& h* k+ a    clear Y1 Y2 y1 y2 vec1 vec2;( A6 j2 ]8 w6 H& |
end/ N+ q$ R. K- {6 |( H) }  j
if DET == 0 & (A ~= 0) & (B ~= 0)8 U0 V4 ?, S+ @3 i1 c" z
    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);
8 t# y- Q, ^7 H    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;% S  _, C1 l' y. i  `, k/ ^7 p
end
. N- }; O+ U1 B8 O/ Uif DET < 0
: r* ]4 X! B; z" s7 F    sqA = sqrt(A);; n$ K1 p4 M7 d4 P
    T = (A.*b - 1.5.*a.*B)./(A.*sqA);
6 M- ?6 M, L9 x7 Y" C: {3 M$ T    theta = acos(T);9 Y& D/ d' s% C7 j
    csth  = cos(theta./3);, o; [3 _- x: ?* O  ?- s
    sn3th = sqrt(3).*sin(theta./3);
1 S$ I8 T6 q$ Q! U% N    x1 = (-b - 2.*sqA.*csth)./(3.*a);2 y: C, _1 ?' O  m) @! p9 ^0 j
    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
0 i! G* D5 q" I  X9 e3 g    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);5 h% o% u4 A* f' S" ~1 _: I
    clear sqA T theta csth sn3th;
. }3 A! Z1 O, ^8 R; r  Yend: ]) ]6 J1 I& Z% z; T
x = [x1;  x2;  x3];) L+ `! \$ L  r5 b' e
end
' e, x( n, i* y1 ~  U* c7 G7 u5 ]; z6 n
麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 07:14 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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