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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)
. Z6 R+ r& I8 O+ L' m8 `# nx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
( y4 U& ?  ]8 K4 ^y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)! Q7 D2 }6 C  _+ ~7 {+ b3 j5 F: D
dx1=diff(x)
9 L2 H# j9 E( {: y0 I6 Ndy1=diff(y)
0 u' ^0 D) K& d3 `; t. ~$ g$ a. ldx11=diff(x,2)* V, L. f6 @* t8 P+ b3 b( u
dy11=diff(y,2)! \7 `9 \( f3 P7 ^

, \  E+ W: w* M& Z- np=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))& Q! ~& C/ z' u2 ]' G+ h8 G
hold on
- z# z1 F$ H4 J: Fplot(t,p)
1 L9 ^1 ~5 [# O  u3 H, u运算时报错矩阵维度必须一致,然后我尝试改了一下。。
4 z' H: j! z3 e( p4 f! Y, e8 c$ Vt=0:0.001: (13*pi/18)6 H& q& ^. p% n) a) x' }6 M$ o7 X
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
1 g  [  t: p, Q$ ~1 @1 Sy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)* c% s2 P! f% G5 Y3 E7 w/ d
dx1=diff(x)  w1 w6 |* @( i+ ?, J* Y& M6 V
dy1=diff(y)
5 y( R' n0 Z- S% Y# A( e& Xdx11=diff(x,2)3 l' t# y- I. v0 |: l& e1 ~# f7 D/ I
dy11=diff(y,2)
( O6 ]8 X" t; b2 J+ Z
$ x4 @, v* a6 l  `8 t! P% S/ i6 V- A; X! I$ P
dx1=dx1(1:length(dx11))
( F  P5 p  z2 H9 o; }dy1=dx1(1:length(dy11))
4 x& S% x1 d8 x; `3 Z
& z5 M. e# [* Y7 T  N) p, V2 Q/ ^$ d/ f
) G5 l9 F7 @* U1 {9 J# [& Yp=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
( F8 {. B- e$ C7 n' [0 Dhold on
& x( w1 K- H) B" m8 A2 splot(t,p)
4 T' K& Z) T, ]- _5 g这个时候代码无报错,但绘图只有坐标轴没有图像
2 e# M$ X0 F- `: p
4 |1 b5 x7 j3 ~7 t希望大神们可以给小弟指一指错误,谢谢大家
5 X$ F( }0 p. K2 h6 e
+ o) `$ Y& X, W; }
  • TA的每日心情

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

    [LV.1]初来乍到

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

    8 r8 {% b3 E8 k- L( {( r按照你的代码p是定值,你少写了一个点,正确代码如下
    0 v# W+ o! `! @( qp=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。& K" w- e9 L- q* G7 c4 `* q
    改成" {# T+ R3 c' ^1 D4 V" t
    syms t
    ! V" `! d8 G3 _, ]x = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);
      z* p9 U9 o' X/ u3 I/ C$ [y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);: D1 B2 s. c, j$ g  L
    dx1 = diff( x );2 h" i: P' Q- h* x6 O1 X- a
    dy1 = diff( y );
    ) o2 z; E  ^+ p3 D) N; jdx11 = diff( x, 2 );( I  |; `% L- s9 Z# u6 E& j0 m: q
    dy11 = diff( y, 2 );
    9 G' |% x% F& z9 y/ U4 W; Dp = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));
    , `5 E( }. y4 C* {2 l5 ?. A9 dPFunction = matlabFunction( p );, M& q: G. J' T& q& A
    t = 0 : 0.001 : (13*pi/18);
    1 L( ~* _9 R& O1 p. k0 |  R- e. Gp = PFunction( t );! k5 S1 j0 f/ K$ y
    plot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:326 k+ p, `+ C& f1 Q
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...

    2 J$ z5 z; a# N! T; A按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。
    % N2 \+ O& L4 C& S% }然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。" w8 H6 i7 K/ ~* i/ ~. H& [
    这是改正后的代码9 c: K( Y, l, \5 F
    t=0:0.001: (13*pi/18)6 S" s$ ^: h8 u$ {% V5 e8 S
    x=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)- K7 s8 i1 m0 ^0 m
    y=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)
    & E0 o% l% \4 Z% J) Pdx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)
    , C) ?: T# `1 g, S# @; vdy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)
    . T2 \% c5 \2 c) T8 M7 kdx11=-(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, s2 e" e( q& T0 X; ^
    dy11=(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)) }# Z( l5 [8 k2 S1 y# Z
    p=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))
    " \- ?' g9 |. V9 Z- B/ [9 Khold on- s3 r. A6 p: I2 ?6 ]2 p
    plot(t,p)
    + A4 i5 K+ B  B' x( ?+ L/ I

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34$ G0 S. j  z1 y/ j$ [* u
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。
      K+ p! P+ H+ \$ X! u8 F9 W  k然后我又按照解析 ...

    4 X- [" k. @5 t# `! M% C* e8 G除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。
    ' j2 D) D( q/ x! S
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-5 22:58 , Processed in 0.203125 second(s), 25 queries , Gzip On.

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

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

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