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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
6 v3 A7 g- t. u# |! u

' I1 e4 r! u2 X+ B' s4 W我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:3 D$ w# \0 p* M. [! u: x9 V
错误使用 plot。8 L! w0 }* S9 D) ^2 T$ P' [. s5 a
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。' Z4 j4 f: r( Y* p4 q

# ?% S# |0 V6 e1 e出错 Untitled3 (line 3)8 `) X8 @  \, K. _
plot(y,c(:,1));
8 b! b+ D2 m# x  V  v% L3 V7 Z; H9 a, [0 y
以下是程序,使用的64位R2018。
0 T4 @0 K9 o3 w: Ey=9.9:0.01:10.1;
9 a: q9 {; l$ ^4 d; l* wc=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);
/ z/ @" g# d, _8 bplot(y,c(:,1));. ?% y7 ^0 ]7 \
plot(y,c(:,2));
2 Z5 F) Q& G, D! A2 bplot(y,c(:,3));
* Q* p+ V1 z1 X$ ]8 J: B' Hfunction x = Solve3Polynomial(a,b,c,d)
# j& z' G5 J( ]" {+ g, Y: E% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.
% k: n! {3 Y2 g; c+ u, J5 x7 Ssyms x1 x2 x3;
! b$ {6 f% I- D! {* k  n' PA = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end
8 p, n! p9 j6 [, p- O; _1 l. sB = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end
5 V1 Y; S( K, A) D$ R' nC = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  7 s$ y+ \- _* F: |1 }& q% X5 {' s; [( z
DET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  ! X; G' d8 A) ~: P1 s
if (A==0)&(B==0)1 B: V1 Z1 C9 q4 a4 |% x
    x1 = -c./b;      x2 = x1 ;    x3 = x1;6 J0 T8 }3 X2 R+ T9 O8 J
end
+ S1 q- x1 d& r) vif DET > 0
: r  R3 ]$ i9 f% [% l    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));( {& {) U. O" D& s$ D
    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));
( R7 P3 F. n' b    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);# N/ f  L( X6 k
    x1 = (-b-y1-y2)./(3.*a);2 \+ P/ u# H9 M7 |6 v
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  
  a$ C5 G% [0 H. p% N: ~    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);
0 R9 ^3 A3 s6 l* j% I# ~    x2 = 0;
8 z# s# W  D9 s/ b    x3 = 0;
+ @/ z6 q* K% p    clear Y1 Y2 y1 y2 vec1 vec2;
" I* N5 T9 k! `" v6 uend
- W7 o; ^" i$ N3 `! {# h# M+ G7 Eif DET == 0 & (A ~= 0) & (B ~= 0)6 J# X$ u$ n5 I% {1 ^+ [3 [
    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);* u" r6 B4 l3 s# N8 h
    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;
* w0 V# |( Q3 U) a8 Q' \2 uend; [) V# j, H$ L. f
if DET < 0
+ \0 T; A( O$ z2 m% q7 V    sqA = sqrt(A);" r$ O! U" w% Q$ E7 P+ g+ C" \4 K
    T = (A.*b - 1.5.*a.*B)./(A.*sqA);
- z* g" `8 I) K' p) P5 Z    theta = acos(T);4 B6 Z5 Q2 r- T! u- l5 O3 m
    csth  = cos(theta./3);" P4 @. l% A7 @) b
    sn3th = sqrt(3).*sin(theta./3);
5 l! a. J& S2 e# E. X    x1 = (-b - 2.*sqA.*csth)./(3.*a);
* O/ N; l7 M3 `% h- Y    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);% T: t$ D7 z, R! d) r% o
    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);
, w; u' S3 W4 N0 m4 l    clear sqA T theta csth sn3th;2 \( C8 B- D$ w' P$ a
end9 h  x! l  t! T" G0 F* j
x = [x1;  x2;  x3];
( A% h( N- ^* \( Q: L1 R! L; Bend
/ g1 A7 R% [! d8 `! \
; S7 L! S4 K! e! ]麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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