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

Matlab绘图,代码无报错,但绘图只有坐标轴没有图像,请大神指导

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)
& r  h7 m3 `1 E  sx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
) v! z7 |$ v, U2 ^2 Xy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
  m! X& w7 b, m' w$ jdx1=diff(x)6 V! n0 i1 f. e6 t  z6 B6 y
dy1=diff(y)
! o& o1 S1 d' o+ @8 ?2 bdx11=diff(x,2)- H7 g/ H; A2 r/ u: K  |# [
dy11=diff(y,2)3 U/ a& H2 o  k1 d, Q
$ e3 \, l6 @9 Z) E" T6 X
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))9 V- S4 x' U. h( |+ u8 d/ y
hold on# T7 A- G6 R- E2 C
plot(t,p)
! O8 z, ^! o+ ?" t! w5 ?! K运算时报错矩阵维度必须一致,然后我尝试改了一下。。8 F- k) D5 H) [( _
t=0:0.001: (13*pi/18)
$ m( F/ [. \; g/ A8 v0 M' ax=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
5 M/ l! r- j' G" h# g7 Uy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
: D* `( v  s* Wdx1=diff(x)
& l8 P' z2 r/ Q5 @6 l% {' xdy1=diff(y)
5 z. Q7 v# Q3 Ndx11=diff(x,2)
) S' F' c, D/ M2 Q0 e/ ]% {$ Qdy11=diff(y,2)* Q, r0 W7 n% D2 _
' D* s2 m/ p  {* k$ m' n

/ q3 N9 k5 ]2 H" ]* P& j8 jdx1=dx1(1:length(dx11))- }$ h# _0 i% T
dy1=dx1(1:length(dy11))
' I" s3 a! M- R9 B: B9 D5 W
9 `1 `# B+ `" g2 G4 k) y' w5 h- f
3 R' g$ Y' j1 H4 U  T& rp=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))$ }1 z5 X" ]$ ]$ D4 e( h# h5 t
hold on
4 X# T: X+ C, v- B: Zplot(t,p)4 r% Q+ }+ a5 V7 D, N. T* W: K+ x, x
这个时候代码无报错,但绘图只有坐标轴没有图像$ y; U6 P2 {6 x" Q

/ y: r! T# a4 ~% ]0 t6 u希望大神们可以给小弟指一指错误,谢谢大家) ^7 z$ Y9 N! f* B/ v: y
5 B- W' Y: S+ o- X* q7 C' N2 `
  • TA的每日心情

    2019-11-20 15:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
    发表于 2020-7-27 18:31 | 只看该作者

    & Y, l1 M5 g$ o7 {; P& z按照你的代码p是定值,你少写了一个点,正确代码如下
    $ {' b+ ]1 M" b' Lp=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。
    + ?9 \, m) ]9 S9 K+ E- V$ j改成
      C$ Q# L8 k. j2 X/ u, Q3 Csyms t
    " ]: j1 c/ q, ]3 j% @5 W' f/ fx = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);8 `: [2 B6 G" p  q, ^+ Z
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);4 p5 ~+ U/ G' p9 o7 a* X
    dx1 = diff( x );. l# A% _& z2 e6 V
    dy1 = diff( y );
    : U5 x/ n- v$ |7 R1 Fdx11 = diff( x, 2 );
    % ]' Z/ |9 M* N3 P/ n. Pdy11 = diff( y, 2 );: G& j; s: A' e. t
    p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));# P0 K# j$ i' m/ a( o5 D
    PFunction = matlabFunction( p );& ?& ^/ j+ V" u" u
    t = 0 : 0.001 : (13*pi/18);  n% `- O3 ?- U& S+ k
    p = PFunction( t );
    , s& C: O& {9 ^  y2 y* N4 Wplot( t, p )

    点评

    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。 然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。  详情 回复 发表于 2020-7-27 18:34

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32' S; A2 |6 N0 ]
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...
    ) [2 Z! ]3 i+ b( ^9 c0 [) x4 O+ }) S
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。6 e$ S* U( K& ^
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。
    ; Y( i4 b  T7 U. c2 `  ?这是改正后的代码
    ( n, o7 Q3 O* _& ^  St=0:0.001: (13*pi/18)
    , x- `" h  o# ]1 ex=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)
    + n+ ?9 a+ k' G$ L' |% |1 ty=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)
    + E: k# J8 g, v3 `/ O* _* t. ]dx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)
    7 V# @  p9 L; Q/ X8 Kdy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)
    4 N, j) W$ S5 f9 E7 ?dx11=-(2*45*sin(t*18/13)-15).*cos(t)-(810*cos(t*18/13)/13-50-32.5*(1-cos(t*18/13))).*sin(t)
    % R. h' g! G& i7 Rdy11=(810*cos(t*18/13)/13-50-32.5*(1-cos(t*18/13))).*cos(t)-(2*45*sin(t*18/13)-15).*sin(t)' }' O: r& ]  b- H' P' `) I
    p=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))$ s; q. n8 o( W, [+ o9 x, l
    hold on
    . G# K! a5 V( I- u' Lplot(t,p)
      z! @% O7 F  K8 W5 V- E

    点评

    除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。  详情 回复 发表于 2020-7-27 18:35

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34+ o! G  H3 {9 _
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。# c! C. y, I4 R. x
    然后我又按照解析 ...

    $ ?0 U, z7 U1 `8 k除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。1 ~- |, y% Y7 l0 P* _. e% A
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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