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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

6 l* k, Y% c9 y& e9 P+ d4 ^7 o0 n( @
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:; y  G8 ~. L7 ?6 P' U$ U/ e
错误使用 plot。  d- X% B' z& w9 v1 x
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。
) y3 L4 @  M8 D% K
% Z3 F7 ]5 Q* \, d6 S/ Z出错 Untitled3 (line 3)$ n! L* w; `% b( G! e
plot(y,c(:,1));0 b2 H: d. _! e# l
' F$ _6 v/ o) v0 v* R; l
以下是程序,使用的64位R2018。" [! N! `* a  g1 h& n9 P
y=9.9:0.01:10.1;
# g6 r- @, o' D1 Z% Oc=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);- E' U8 H; Q! m8 k6 W. X
plot(y,c(:,1));
# z; X2 O! _4 \; e6 z" {( P' Q; bplot(y,c(:,2));
) j+ p8 q6 A( V9 z( J7 P6 {plot(y,c(:,3));
) M) b7 _  a4 y; B3 V9 Pfunction x = Solve3Polynomial(a,b,c,d)- d  W8 m6 A* ?/ J
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98., z/ u5 Y2 G$ ~* t
syms x1 x2 x3;
8 K: y" S" i; e! n% wA = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end
8 }2 ]9 O; P7 GB = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end
' O6 M! e" l% j  ]C = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  
9 W: ^+ j2 Y( C& v* N) RDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  
7 z9 a3 f, U; E& Q- {if (A==0)&(B==0)
$ N) m( J, }8 N6 }    x1 = -c./b;      x2 = x1 ;    x3 = x1;" L' W& {7 \0 H% u
end
! y% c$ z2 Z. s. l1 O: jif DET > 0" ?2 u# C5 G6 y" ]. o
    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
# ~$ |- Z2 O6 b% N7 x) `    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));6 E: X8 B1 ?; I# r& p( |
    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);
- X2 n* Z& p$ R    x1 = (-b-y1-y2)./(3.*a);# I) O' ?* q/ ~
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  
5 i6 k' k! I3 N8 |! X- e& ?" v    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);
4 h1 \/ U: ?. X, F    x2 = 0;
/ q$ I. j4 V) @8 @) s- ?; Z  u    x3 = 0;
' g7 E% f. I5 H  y+ h' W* Y    clear Y1 Y2 y1 y2 vec1 vec2;
& j0 U' r2 U* tend  V' h9 W9 d+ {) p* c' q3 i5 J+ n
if DET == 0 & (A ~= 0) & (B ~= 0). G& X- _) u$ D( B# a
    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);3 ^  e* g' N" ?4 D/ |
    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;
* m! s! a# y# @, @end
3 m2 `4 p# p3 Y& ?9 p! a' pif DET < 0
# ?, i$ V+ I* P) N  _2 Y    sqA = sqrt(A);, k, x8 P1 n/ F/ q
    T = (A.*b - 1.5.*a.*B)./(A.*sqA);
: I' ^. V: E; q! B" F; w! H- Z    theta = acos(T);
' }/ z% B- y/ k0 @+ n; ^    csth  = cos(theta./3);" x* @) ]) N) P4 ]7 D
    sn3th = sqrt(3).*sin(theta./3);
" J$ ^5 V" |/ ]$ Q8 J) l" D    x1 = (-b - 2.*sqA.*csth)./(3.*a);
2 R. K. f- J5 }# L9 T6 _2 P$ F* X    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
8 s% x# @8 @1 K$ f    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);
1 l8 t3 d$ ], r) t. m3 ^" a7 h    clear sqA T theta csth sn3th;
( T" G- d" o6 Y# W7 j" r& h4 `end
3 O( W' H$ f/ o" q' Ox = [x1;  x2;  x3];
8 ^+ u6 Y# F9 W- E' o; Z' Bend' K, Y& d, n# e" s" p, P: d

3 l! X+ K( ]1 u! q6 B) s麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-12 15:38 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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