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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)
/ W, W. M: j# u- p* E, u: Sx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t), o% E5 [# O# w' [+ q
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
. [+ n+ d6 U* ~% p5 H& c: Ydx1=diff(x)+ T4 |# @% n/ U" u1 l: `: J
dy1=diff(y)
9 Z+ g/ w$ |* O! [$ ^6 }! Rdx11=diff(x,2)8 n2 a1 E& t+ c% b  I
dy11=diff(y,2)
( I! S' T6 ]. V8 h4 s. ]6 |) x0 f% z1 W7 L
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
6 M  l8 Z$ y$ w) ahold on; C. i4 k: @1 o( ^4 R
plot(t,p). ?' y# ?% p. J# u2 ?$ z# x$ G
运算时报错矩阵维度必须一致,然后我尝试改了一下。。, ^( A7 _2 f7 ?+ L4 I
t=0:0.001: (13*pi/18)' q8 y" G8 \$ x: l
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
, j3 {9 R0 \; Z1 ~+ Jy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
& r/ ?- F+ L2 Y( D: P3 Zdx1=diff(x)( r0 [: Y9 c. |7 F/ p0 j) {
dy1=diff(y)
( S8 N! c) G! p6 G$ r$ ]dx11=diff(x,2)" D% A2 s& v; @4 W8 d9 L- l; x
dy11=diff(y,2)
- p- b9 I4 G+ O  `# d
- R! a; z' y2 k5 d( J* e3 z3 D7 e9 `9 d
dx1=dx1(1:length(dx11)). H) ?" N( |5 Q4 Y4 p
dy1=dx1(1:length(dy11))) W6 r1 t6 C% E1 a/ {9 O" p
. J  O, f" x5 m* O7 ?8 ^+ ?
( Z2 z8 q) U6 I  l' X; G9 i2 K9 Q
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
8 o1 [# Y* R* Ehold on
! G! a) D2 T; u2 o7 a+ oplot(t,p)
  d- V$ @4 [5 r8 h& `  L6 X这个时候代码无报错,但绘图只有坐标轴没有图像
( n& G! Y- ~& [# E# s
$ M1 N/ _  M7 A! \# F6 @! ]9 F: e6 I希望大神们可以给小弟指一指错误,谢谢大家, x" l3 [$ \! P, G
6 X: Q- v2 I5 [2 Y' \
  • TA的每日心情

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

    [LV.1]初来乍到

    3#
    发表于 2020-7-27 18:31 | 只看该作者
    4 v/ G& G9 t0 \  o) M) j8 b
    按照你的代码p是定值,你少写了一个点,正确代码如下4 q) @! y3 q$ Z8 _  Z+ A$ U
    p=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。7 G' D7 }$ O3 B
    改成- [9 ?  ^* r2 j" @4 t% A) `
    syms t
    " I$ N6 Z  r; c  J- d" ~# M5 m$ ?, wx = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);' n* ~. ~4 y2 G8 C/ |( ]
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);# o, {+ _1 C1 D3 V# r( b  T, P
    dx1 = diff( x );% O/ I5 J( u7 Q1 M
    dy1 = diff( y );6 K: \3 I2 W! v$ e! y7 I
    dx11 = diff( x, 2 );# a3 q' a" s1 @6 _3 N7 ?: x
    dy11 = diff( y, 2 );
    : R. f& Z- o0 h6 b- _p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));5 y2 f0 Z. I' h
    PFunction = matlabFunction( p );+ O7 q; ~; d$ S  C
    t = 0 : 0.001 : (13*pi/18);/ L- G8 u1 N3 v/ N$ R3 J, W
    p = PFunction( t );) Z+ ]" @# `8 `7 D  G
    plot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:328 y8 X1 R- k4 m: F" z2 `( i6 t1 g2 \
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...
    ( _+ H; E* U- n. Q$ k* K
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。* x$ f1 C! R: p: ]+ W5 z
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。( b. B: h* i, X1 P$ H
    这是改正后的代码* n: F9 }. r: l9 }# D8 q2 f0 a0 M' K" U
    t=0:0.001: (13*pi/18)$ _% c; X4 _1 h1 G  `& S4 }
    x=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)
    . x, `4 g1 a; K$ Ky=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)
    & ~/ m3 y  T, [+ \& ]: d  c  ^dx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)
    4 G  u* o# [3 }- [dy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)- I" H5 I8 t- J6 h1 i4 r1 t
    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)
    ; B( Z0 t, k% S1 {. K# Cdy11=(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)
    , F2 H' h' P) w9 O7 W' x1 lp=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))
    8 ?' D  Y9 F9 D. uhold on5 L4 h# q/ t* ~1 O7 n
    plot(t,p)
    $ u! g, W% _( ]  O$ B

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:345 [3 ?) ]8 W  }. M4 f
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。
    9 R) W3 t" p7 K6 ~然后我又按照解析 ...

    3 Y4 ]4 X7 m, u: y/ @7 o) h除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。
    9 C8 t' R% l* ^. z% e
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 16:26 , Processed in 0.203125 second(s), 25 queries , Gzip On.

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

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

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