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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

  g' [6 z, Q1 l1 {& y6 G+ Z* ~# W( v  m- L& Z0 G3 E
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:; n  l/ h" l( q' H$ T
错误使用 plot。, w6 H+ j1 Q/ |' n, _
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。
" _. }# B- _8 u8 _5 f8 ?* E% E, t7 I; X3 v! `0 b* z
出错 Untitled3 (line 3)3 Q4 V) `+ I' V* Y2 z# W
plot(y,c(:,1));
) S* M' \; ^6 S& ?4 f0 R* a' a
( h0 g/ a9 V: g! }! r. H( M以下是程序,使用的64位R2018。
- s6 h! E* i: W- B! {4 xy=9.9:0.01:10.1;1 W% C: `- V) e# `* [
c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);: M% Y( d9 ~: ~) E
plot(y,c(:,1));
5 |' J' u# ?1 C" U; E" v. iplot(y,c(:,2));. b% h6 F" B( A- J
plot(y,c(:,3));3 k4 ?) L& u1 }% Z
function x = Solve3Polynomial(a,b,c,d)
" E: t. d/ y0 \: Z% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.
. x8 w1 H1 t* ssyms x1 x2 x3;
3 {  J& V  h# s# V- l6 h) v* oA = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end
/ M+ k' e( }3 \1 W. ^7 w+ CB = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end% X, r: N; m4 ~. s" E
C = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  
7 D" ?' j" g4 o4 `( W, g* BDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  
8 E' L6 f) }7 C3 Wif (A==0)&(B==0)
! y1 V& D5 @7 U& z+ [    x1 = -c./b;      x2 = x1 ;    x3 = x1;2 \! H; ^+ M# v. b" Q$ z1 J" {
end
' X( f7 ^; Z1 [: \1 \( }if DET > 0
* s, h+ N/ u  G- D% b4 w; {    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
0 @8 c; v( |) u+ d3 S  N    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));" O3 I2 k% v) l
    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);& A+ Y$ C( g5 f6 v1 q  |
    x1 = (-b-y1-y2)./(3.*a);) \1 f4 I: V2 g& m" N
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  
4 n/ A" ?" O  w! e4 b    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);
% s. z; `; e# Q1 S    x2 = 0;
3 V+ A( a! w% F* z    x3 = 0;2 P% ^# L' t6 o: f& u8 r8 L5 Q" R
    clear Y1 Y2 y1 y2 vec1 vec2;
! I0 A. {6 C; z" D% P8 Aend" ^  z( H9 m9 M) @
if DET == 0 & (A ~= 0) & (B ~= 0)
$ y; R( A7 e3 d5 \    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);0 L, j8 P( Q) {- E+ R
    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;
9 e, \; V0 \/ Dend- z" _3 G# u. N' u& ]  [
if DET < 0! J- D( K+ _" K: L9 P
    sqA = sqrt(A);
( `7 J6 s- v& r& a    T = (A.*b - 1.5.*a.*B)./(A.*sqA);
, m' C9 q3 T& i    theta = acos(T);
. Z/ R! ?, p2 ?% d; o2 a    csth  = cos(theta./3);, Y% D+ Q  h9 w- k  ]% t3 t8 H
    sn3th = sqrt(3).*sin(theta./3);" d2 s* q3 w2 X7 |$ F% s7 s: B
    x1 = (-b - 2.*sqA.*csth)./(3.*a);
$ ?9 u/ B" k/ d8 Q) z    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);+ ?. V3 p1 S, J1 J5 [
    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);
# v& h9 G1 Y) U4 ~9 U: Q    clear sqA T theta csth sn3th;
0 k6 d) H; w5 P$ a! D: @( n% Gend
, Q5 K* Z6 S9 X& v, d% D, m6 Vx = [x1;  x2;  x3];' ?  Z# N  Z8 z, T* @' i
end1 `6 w! z4 G* F  }  L
8 @) k9 [7 h3 D, f9 |. D' n& C
麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-21 11:50 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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