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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)2 E0 S: |; @! z2 K) ?* \7 x
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
2 T7 P- M9 g, g9 ]( c. _6 Jy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t), N& ^' n; k5 M
dx1=diff(x)
$ X+ ?. B+ ^4 c9 e, d. ddy1=diff(y): P' Y  U3 l" k) r8 i! L
dx11=diff(x,2)/ K5 ?5 B& j9 n/ f/ b2 H
dy11=diff(y,2)
" T9 ~, v, s! i+ G" K# F
: F; w' B6 t& d7 s- g$ dp=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
& f8 _# T+ B/ e. G+ d- qhold on8 K- l6 N. B8 A5 |$ S
plot(t,p)
0 j, H2 H% ~& e, y9 o* n( [运算时报错矩阵维度必须一致,然后我尝试改了一下。。
! ~* u$ j4 @, st=0:0.001: (13*pi/18)' G- O+ y; b1 e+ x4 K8 s# i! j; V% L4 G
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
1 z6 a% @9 V9 ey=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t); C0 h7 L% m; i
dx1=diff(x)% K7 @; D- V8 d
dy1=diff(y)
8 z$ y8 {/ j: q$ i2 rdx11=diff(x,2)$ ?4 ?3 @8 h# m- z+ `2 o
dy11=diff(y,2)
# d, t$ F4 [% b( V
2 B* v" H+ \& `9 Y1 h, B/ L# I
- r0 }1 t$ S7 H- z% n: T, X7 R4 fdx1=dx1(1:length(dx11))" L4 s8 X( n7 c
dy1=dx1(1:length(dy11))3 S* w  x+ E4 Q+ M0 E
4 [- \% q1 m1 Z1 n1 R2 d

6 Z% x0 w2 ]& n, xp=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
5 s+ I, J; I% b$ Zhold on( @4 S" `$ Y# z6 @5 H
plot(t,p)
3 ]3 W1 e% y0 X% h# A1 B. |这个时候代码无报错,但绘图只有坐标轴没有图像. ?) C2 H" G, [, ]5 O1 V

. E, x: s. z) g. J! }2 C* _希望大神们可以给小弟指一指错误,谢谢大家
# n, Y' Z: i2 V# _5 E# c5 L8 [8 M% x4 z, B
  • TA的每日心情

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

    [LV.1]初来乍到

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

    , _8 N# S- U4 x. \4 K2 B( a按照你的代码p是定值,你少写了一个点,正确代码如下5 m3 z7 o7 P: h$ b0 P
    p=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。" V% t  u% {7 q9 X
    改成6 h- N9 D$ w8 Z& z9 j* C( k
    syms t3 r" |) `; I" v0 R$ }6 `6 I
    x = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);/ f+ z$ \- @! ~" K4 ^
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);8 [* }/ `' q) ~. I
    dx1 = diff( x );
    * H+ w' F8 c+ `6 ]3 M/ Tdy1 = diff( y );6 Q, D- e  N0 S7 S2 s; p
    dx11 = diff( x, 2 );, M# ]3 C1 P) H3 r; y2 r, M5 q
    dy11 = diff( y, 2 );4 Q& x  _$ e" @- Y
    p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));& s& C/ @: e# r6 t9 x
    PFunction = matlabFunction( p );) j0 N8 Z0 q, F& z! n8 @
    t = 0 : 0.001 : (13*pi/18);& B; k9 l; p. d) h5 ?
    p = PFunction( t );0 t8 k! y2 X  z  K2 U2 i
    plot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32- Q  ?6 z9 H7 S- ?, v
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...
    0 e; q$ j- Q* Q5 E) S
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。  u0 J3 F& R* ]5 y$ K- B! r
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。
    5 p$ u+ x, _! _5 {3 A" G这是改正后的代码/ q; G" d) z- M
    t=0:0.001: (13*pi/18)
    " c+ i; k. `1 c% ?! i; ax=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)
      l0 b/ a6 G: ?1 Cy=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)% E7 K* }$ j: |( {# X( n/ F4 u
    dx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)
    1 b8 x$ V; I3 [" R- U. udy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)/ n6 p5 O; d; @  @
    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)
    ) W# I4 p' u7 }9 U& idy11=(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)
    1 {! o3 T- w# D$ \1 m2 Ap=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11)): x& E- W. F' ?# M0 e$ I2 L7 w7 o
    hold on
    % p1 w- h5 B! N" Bplot(t,p), ]) c0 k& {( ]# \  @

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34
    ) O/ _  N9 S' J4 {2 Y6 @' l/ z) v按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。4 l5 u5 _/ U7 R
    然后我又按照解析 ...

    $ e) ~" Z0 O! A0 H除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。
    1 e) r* {  c& L+ m
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 13:55 , Processed in 0.218750 second(s), 28 queries , Gzip On.

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

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

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