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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)3 {1 n# E6 H4 m* `
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)$ R& |' H! R: A6 H& c
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
; Z5 P1 o- o  d) G" H  cdx1=diff(x)
" Q- V/ q! C- ^0 C$ }+ `dy1=diff(y)9 _& R( u) D6 e8 h4 R. k1 O
dx11=diff(x,2)
" E* v3 {5 n- h9 M3 a  |# y& Edy11=diff(y,2)
/ B& c" G7 d1 ?8 O; F7 ?3 ~1 P6 U' z) q: O0 J$ w& x
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))$ |9 E$ a! F' q$ e) p( l3 T4 f2 O
hold on
, [: c& U# I3 Uplot(t,p)+ W& e$ U3 r' d* [6 S: w7 b
运算时报错矩阵维度必须一致,然后我尝试改了一下。。6 m" T! p9 }, z  j
t=0:0.001: (13*pi/18)* {9 O- T& h3 @% x) v
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
1 E/ I! L7 R; d7 A" j6 oy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)5 [7 G3 }8 g  x$ c8 ^3 d5 D
dx1=diff(x)& B' Z2 \8 v) k
dy1=diff(y)/ z' O- q$ q+ D! ^% O7 R
dx11=diff(x,2)! ^: `" e6 N! c4 a, s- g" W
dy11=diff(y,2)% l' K" e2 w  o

3 {% j# A# j7 q6 t1 q  K) k% x. ~$ b0 J' P, L6 u
dx1=dx1(1:length(dx11))1 C8 j3 C( w. ^; c: a  T
dy1=dx1(1:length(dy11))
# g1 x5 h' ]$ k7 Z% A" p4 v* Z2 q
) c- P& l% t6 a5 P- g& ^, V# i1 c0 A& I! j. M
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
8 Q5 y7 m$ H& H' p3 B3 V3 R- h1 Fhold on6 E" a" Q0 L2 ^* ]. q$ F: E
plot(t,p)/ `1 j! s. M' z
这个时候代码无报错,但绘图只有坐标轴没有图像
! i% q; I7 v# ~# p) P" h* o
6 m! D, O9 {# ~/ N5 O1 _希望大神们可以给小弟指一指错误,谢谢大家
/ T6 _; ]) }* B7 b6 R
( \1 r  `- o! c) B
  • TA的每日心情

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

    [LV.1]初来乍到

    3#
    发表于 2020-7-27 18:31 | 只看该作者
    2 c. c# W8 ~' G5 `
    按照你的代码p是定值,你少写了一个点,正确代码如下
    9 L; v( T, H; }, A5 np=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。
    ) V' N0 X! z/ L改成2 I' N$ f* Z6 {+ s8 f: ?- s8 z
    syms t3 E) a1 X+ g& f- G  }- b# F
    x = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);; t/ \2 B( t2 B1 H7 |
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);
    - a* Y. f* V, }' T. Q0 }* m" Rdx1 = diff( x );
    % Y/ |" L6 i+ w: b, [# udy1 = diff( y );
    - Z  h6 F9 v6 a, ?dx11 = diff( x, 2 );
    % {* {! i) [* [dy11 = diff( y, 2 );- `, Y3 ?& f. `) b* K# A# ~6 D7 K
    p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));
      `7 c" ?& l; C2 L* d( @8 b* EPFunction = matlabFunction( p );# B9 t* I, s6 n& N
    t = 0 : 0.001 : (13*pi/18);# E4 n$ E) r8 ^5 h
    p = PFunction( t );
    . d1 F- v$ V- N: Gplot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32
    $ I2 M4 D7 p. }: w* m不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...
    ; E9 v7 P) A* }$ ~
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。6 q( _9 M1 P( J2 B# \- {8 P" i! s
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。' P% U- t& U2 c4 m# \8 y
    这是改正后的代码
    9 ^, E% n6 V2 x8 c6 qt=0:0.001: (13*pi/18)
    8 p$ O; U" C- D; \8 I7 k7 xx=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)
    " K" x; H# [* M* `$ @y=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)
    ! W% W+ x- O' }# Y$ N& p* }dx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)
      d2 U8 F$ q% \+ Y. d4 Ody1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)! j7 t- z3 Z' l2 e' K
    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)
    4 @  w% T! u. udy11=(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)
    3 x+ F2 a, o/ b! @1 z/ [1 n3 J" \p=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))
    3 Q" b( h, ^1 w! n2 x. P) S6 S- xhold on- T7 A0 w2 e+ F2 Q  P, J+ D
    plot(t,p)1 |8 i% Q- {/ e, ^0 T7 {/ u7 {. o

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34
    3 a$ U# b3 N* Z按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。0 L( Q( v7 D1 J
    然后我又按照解析 ...
    ( A& J- ^% d. L! D
    除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。; H- L% H4 ]9 r* S
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-25 15:22 , Processed in 0.093750 second(s), 28 queries , Gzip On.

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

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

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