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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)
# I8 h8 c. k1 |( cx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)/ ?4 O& j8 W/ W1 I- @* ]( T! N
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)" D! J6 k% s9 v+ A& b5 u$ ]/ I' e
dx1=diff(x)
7 k. ?8 X* Y' p* w( p: ^3 I+ sdy1=diff(y)2 s" m5 T- j6 ^6 k
dx11=diff(x,2): {, R& M; M9 H
dy11=diff(y,2)
* @: y/ C+ l% c3 O4 M& a/ M
5 @: S% ~7 F% j+ u& _; lp=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))) ]( G: n  |1 L; }# C4 T
hold on
# R. o- j5 k5 U) F" m" bplot(t,p)% R+ g& n& I3 ]2 J7 ^
运算时报错矩阵维度必须一致,然后我尝试改了一下。。. I! U3 K! |1 m( ?  z  g$ t
t=0:0.001: (13*pi/18)
( ~; W. [, }" A/ kx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)9 o, \) _, U& V2 k/ @( M( m
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)( N9 x+ ~1 ^; ~+ `
dx1=diff(x)  L7 i# D6 D; y
dy1=diff(y)
( u# B- S% L3 m5 U& Odx11=diff(x,2)/ j- Y. r  u$ [" \
dy11=diff(y,2)* G1 z3 e* A: }7 o) e* i9 B
' Z" ^4 e8 {+ Q" p$ a4 Z# T9 B) D/ n

) i" @! f! v$ q( Q9 ldx1=dx1(1:length(dx11))
+ `% v, ~9 ~9 ^/ o5 ^dy1=dx1(1:length(dy11))
, U3 D: ]6 D+ C3 t* R6 i3 |; y$ J, D7 _4 X

. F. X' B: s! w% C5 o( h; Lp=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
8 s0 }! u/ u$ G9 chold on
& L  i$ ?3 t0 B* N- h2 H3 l% q! ?plot(t,p)
' }9 T4 ^2 h% g. R' _这个时候代码无报错,但绘图只有坐标轴没有图像  s2 O  h' B7 d" f
4 t3 I4 C1 `5 {
希望大神们可以给小弟指一指错误,谢谢大家( W. B) c1 T" u+ I8 {- h

% I+ p8 b/ r9 g% I7 k8 `  r+ f, u+ X
  • TA的每日心情

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

    [LV.1]初来乍到

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

    4 l* }9 g, r0 E$ l- Z按照你的代码p是定值,你少写了一个点,正确代码如下
    5 k9 |6 E' W' M: lp=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。
    - [/ ~; w+ E( i9 C- `/ n0 C改成- U6 k  Y- x! `8 q
    syms t* q9 V9 r$ Y: ~; z7 g) v
    x = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);+ M! c% m5 z4 D2 I6 p
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);3 g3 ~& u) `: l' g" U
    dx1 = diff( x );" g6 N2 h* T3 \" Q
    dy1 = diff( y );
    . r' w5 x& R3 K$ Q1 udx11 = diff( x, 2 );4 E1 B: v& m' O1 \
    dy11 = diff( y, 2 );
    ( A3 N7 L6 ~( Y( q2 i# f" [p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));6 i9 Q6 c% Q; I& Z, f' ^
    PFunction = matlabFunction( p );9 f7 W; O# R4 r: p+ x( H& K2 U0 k# x
    t = 0 : 0.001 : (13*pi/18);
    ! [. Q8 }3 r5 ^# m8 @8 I8 _* v4 sp = PFunction( t );% S% K2 f* f8 V* Z5 p4 y
    plot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32
    " |6 B9 S* B- F- ^不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...
    ; v4 R3 F6 g/ v) ]# F, ^( L
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。' L4 r& x0 b/ @( t/ O1 S! C
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。
    9 O+ Y* e4 t. k* c1 L4 ~! ~这是改正后的代码; q0 d8 c1 o* M, S
    t=0:0.001: (13*pi/18)5 o& l* [/ w# U  j
    x=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)8 Y0 y! V) C& F0 A
    y=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)
    0 H; x7 B" {, K5 L  Fdx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t); ^: O' u& n: N$ P/ R
    dy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)
    " `" A, z  m5 \) J8 edx11=-(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)
    . Z/ p3 ~( c1 L$ f* C& Ydy11=(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)
    ! T' I7 {+ Y( ?. g7 c3 ep=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))# g4 `7 `9 q+ @* ^1 o/ C2 @
    hold on0 A- v3 b! v9 w$ ^% u- i
    plot(t,p)
    ; j5 I* b' I  S- R) b% ?' h

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34# r1 s" J" L4 Y1 z1 w# {' G6 v4 P
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。% ?5 E) O/ e  Y: s! B
    然后我又按照解析 ...
    . y. W# X& g# {5 S+ @
    除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。
    ! _1 r/ j+ W/ z( }3 t) N- Z
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-23 15:21 , Processed in 0.078125 second(s), 28 queries , Gzip On.

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

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

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