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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)
( S  |: e; g/ J$ }  v3 kx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)5 U; r! }- B+ t8 j
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
7 a% x2 I3 z: B( b3 W; y0 R* sdx1=diff(x)- a; i, K) w6 h2 x* p' P6 Q* M
dy1=diff(y)- [. r* `0 c& o4 h
dx11=diff(x,2)
+ x" V& T# D/ H" Fdy11=diff(y,2)
! R: s4 Q& l& y$ L! ]5 D. y: K( X5 j5 o. M
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
- w. x5 S1 o1 P7 \5 `: g* W* fhold on8 v0 K5 @# ~* g+ ?
plot(t,p)
3 }2 i+ A( t, ^运算时报错矩阵维度必须一致,然后我尝试改了一下。。5 b- v! v1 ^: w! i: c5 f- J
t=0:0.001: (13*pi/18)1 W- W4 Q+ f: I! N( r
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)& s; ^4 r+ o% M( ]
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
) }% N& x( ~' M2 P. _4 p+ n9 ndx1=diff(x)- ]* S  D. q6 M  T
dy1=diff(y)
9 s! L+ T" m$ i! {" |5 ^dx11=diff(x,2)' |; W& [, ]; w( W9 [7 \
dy11=diff(y,2)
' o  _- K) {) M7 U
. p0 B2 {0 Z- `) A% I) \% D
, W4 k. |* G8 K. M, Hdx1=dx1(1:length(dx11))& H* M  d+ A1 @; @
dy1=dx1(1:length(dy11))
/ ^% a" p0 c* [6 v& g
" L4 I( x" d- Z. Q, k
& J; T: b. x# Q- {! Q" g4 }- ^p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))
' V% W& t$ Z7 e. L, ~5 j7 r7 mhold on3 @% w( ~! `8 m8 H0 h: f- k8 K/ e2 k5 s
plot(t,p)
5 {, K: S6 l# F! h' \$ s8 Z这个时候代码无报错,但绘图只有坐标轴没有图像) F! z0 y* @6 J" e4 `9 W! P2 l
1 `' k; F) \  V- Y* G2 R
希望大神们可以给小弟指一指错误,谢谢大家
1 q9 r! j' P; [9 R0 g6 n. v4 o& Z! ~: C. ]* ]7 k
  • TA的每日心情

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

    [LV.1]初来乍到

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

    ( R% y3 w# h2 k5 S* j" X+ k: h按照你的代码p是定值,你少写了一个点,正确代码如下
    % P: q, ^% L( T% a# Bp=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。
    ; F8 X* W2 p. R% Y* N0 M; _2 C改成; ~4 G: M( I* y1 C, p6 L
    syms t
    , k0 T# t& U: Y5 x) Px = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);1 S) ~1 R! q" E- a" `/ W
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);( \! d3 O: S  l
    dx1 = diff( x );* r8 Y# K) c; V- l" N' b; k
    dy1 = diff( y );
    / \" n! J) }- ldx11 = diff( x, 2 );
    & ^9 I0 }8 m: Z% v3 P$ Bdy11 = diff( y, 2 );
    , E( B2 y" H% b' J! s$ gp = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));8 L# N* `- ^# W0 {8 G) V# d6 |7 F
    PFunction = matlabFunction( p );
    4 A7 D# ~/ }3 \1 T7 st = 0 : 0.001 : (13*pi/18);. B3 |1 P, T/ n
    p = PFunction( t );' c  n6 B4 r& F, c. z
    plot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32; \' W3 ^$ M. D% f8 ^
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...
    % s, X" z+ S; l' `! p) k9 U
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。- b" J: L. w% s
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。
    $ c1 p7 c; h" [+ ^" `/ {( @  a- w这是改正后的代码3 d9 U+ ~) B  T1 ?6 I& A! }# |
    t=0:0.001: (13*pi/18)9 p+ M8 ~$ o0 b2 _
    x=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)( K9 v3 i3 z! @
    y=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)
    6 _2 x2 B) L' t; i) A& Y( cdx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)8 e( o, i% p/ p* }# T$ g
    dy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)+ I1 j% x5 w) ]. u
    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)5 C+ M: v& {4 l& e( T
    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)  m7 K3 l  X) l# g2 E8 h
    p=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))
    - r7 j& N( A( P/ P+ j; Y! Bhold on
    7 E7 l- x) l  N. F, u6 Xplot(t,p)) H( X0 b  W5 N$ T) X

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34
    6 W5 |; G/ [# L+ f6 y按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。
    7 K2 m% }/ `% ^  l  V# Y然后我又按照解析 ...

      b8 A$ D$ m" M0 a& R, N8 n8 E+ U除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。9 i, F% z7 C  p& P% S' Z4 |
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-8 01:44 , Processed in 0.140625 second(s), 29 queries , Gzip On.

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

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

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