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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)8 w% Y0 W8 |; `* j% J
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
. G% A. ]1 R7 a) w8 F0 zy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
% M/ w, W" v3 P; N2 R0 h, ^. ddx1=diff(x)! G0 _3 P% S; P* G6 G0 E
dy1=diff(y)
7 x4 n0 b0 e# Z. w) z! O" ?2 edx11=diff(x,2)
1 d. z/ L. |. }; y2 _; `dy11=diff(y,2). X# a" Y7 ^( Q+ I4 V
3 S: m) ~( H- y$ S5 }1 [
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))8 K' ^! p6 h& k3 A
hold on
3 V' m( u& U  o; U$ nplot(t,p)
: J+ U5 _1 ]7 Q, G3 I$ P运算时报错矩阵维度必须一致,然后我尝试改了一下。。
9 B6 x. J* z- {; Dt=0:0.001: (13*pi/18): @- U0 j6 E& A( T+ D* ]) B
x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)9 p, `0 u. ]% a- a2 ?. {9 b
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)" Z0 G' f! N- I  x4 p. l
dx1=diff(x)
* i" L# Q7 L) ]; o% G$ T8 J  P. Ddy1=diff(y)# m% H; O- D1 d
dx11=diff(x,2)
6 J2 h# ]6 {, W8 L' Gdy11=diff(y,2)6 \. \9 P) P4 j& G) T

2 I7 Y' _5 [$ {. Q$ d, }
' H; ^6 A2 S7 B2 Y) [7 I0 ddx1=dx1(1:length(dx11))
- C$ p6 d  P+ @' F7 `! B3 Vdy1=dx1(1:length(dy11))" G, x8 L/ B) Y. o, l

, K/ Z7 B" a9 \6 d" _4 ?7 {+ U. p8 W% h; Y  D8 b+ z+ R+ `
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))6 K7 j8 z# Y% Y$ J/ l1 i" Q
hold on
6 {9 v% E* {) C! i8 bplot(t,p)
2 E5 L8 J9 n; g7 I; {这个时候代码无报错,但绘图只有坐标轴没有图像
8 L- _( t, ]/ w- E, o: G* o# a: A
# P$ B0 Y/ T7 B) }! _( k/ B希望大神们可以给小弟指一指错误,谢谢大家
5 i6 }0 m1 D& R! I# T: p
3 A, @6 n/ t5 Y
  • TA的每日心情

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

    [LV.1]初来乍到

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

    / [/ G: k, H( m/ v按照你的代码p是定值,你少写了一个点,正确代码如下- U/ b: k% Y5 z+ {
    p=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。
    " x5 _5 B3 p. U( j  i改成$ k: ^0 ?7 E+ [' V- p6 c
    syms t" U0 |/ x- n& z& T
    x = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);" G# ~# L* ]: _
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);2 F4 M* Z' a0 T7 o7 D; ?/ F7 k: n
    dx1 = diff( x );5 e( i, r5 O) U0 \
    dy1 = diff( y );2 v$ |9 v6 l3 e
    dx11 = diff( x, 2 );' B; p/ z* w5 h" Y# d6 n
    dy11 = diff( y, 2 );. f. y6 Q5 t" ^7 l" X+ V' O0 D' m4 X" g
    p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));
    ' R6 A) I0 B2 FPFunction = matlabFunction( p );* c; [! Q1 B- ?- z0 |
    t = 0 : 0.001 : (13*pi/18);
    * N/ {: k2 n0 Tp = PFunction( t );
      H& }: f1 v) ^( k6 Mplot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32& U) s- Q2 B; G& D
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...
    & p# N; O2 W. e8 V1 M$ E0 P+ W
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。- o$ `" f) F  e( M1 K. C
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。
    ) T0 n2 x8 v& f) W' Z8 Y这是改正后的代码7 D2 r  K$ V2 J/ ?- y, |
    t=0:0.001: (13*pi/18)( u4 q& O6 F# H& O: t
    x=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)+ p% f# |- T6 K" J
    y=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)
    7 K" j& c  o- c! |: M. ]dx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)" |% q) h; b$ }4 @8 O, f  s
    dy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)
    3 h& K% y3 I, l. Y( Odx11=-(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)
    % J  J/ j* K; @% A1 y' Qdy11=(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)0 }5 \2 T4 r4 Z
    p=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))% o9 W& T' O/ ~
    hold on: F2 i. }3 F" C) j# ?; C
    plot(t,p)* \8 |+ Y, H# H

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34" o0 V/ M5 e0 [# c: @! M
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。5 R! Y) K/ x8 k) @; j
    然后我又按照解析 ...

    # M* d& _+ A0 S! f6 g& k! F除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。
    * o9 z# \' E: m3 i
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 15:11 , Processed in 0.234375 second(s), 24 queries , Gzip On.

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

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

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