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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)
# E: m! o8 |+ C, w5 m: w2 S1 Mx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
- T0 ]0 w, f; vy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)& k- P! E2 V. m# W; j
dx1=diff(x)
& c# i8 y2 I9 C1 ?2 m1 Hdy1=diff(y)
6 v" L6 F) X6 h0 ~# gdx11=diff(x,2)
" E2 U+ o, ?% G9 a9 d: N! N- Sdy11=diff(y,2)
! u4 L$ r" Q+ M# z
. N6 S3 F: K, c) Q; Op=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))* h/ C! O, ~" ?" T
hold on
3 B3 H& r  s6 Mplot(t,p)
3 N) u) b- D7 w* O7 G- R: V运算时报错矩阵维度必须一致,然后我尝试改了一下。。/ }3 O1 d0 M/ t2 T
t=0:0.001: (13*pi/18)
% h$ |; S: m% Kx=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
% i7 J8 f2 B. n4 e2 by=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
  Q2 l+ a2 m) D& pdx1=diff(x)8 C! i+ F/ ~; U+ W6 o0 `" w$ v1 V
dy1=diff(y)
1 j; @9 l0 ?! A" odx11=diff(x,2)
8 C4 Z; B# `* D) }dy11=diff(y,2)
  J% s" s+ C  r6 z
( K( @7 W$ |9 B3 G# X3 z/ ?3 ~$ j( v
dx1=dx1(1:length(dx11))0 L) W" @1 B. b7 z. M- l0 U
dy1=dx1(1:length(dy11))& C; X/ a, f/ z. q7 ~

7 P7 b6 b7 Z- [3 Y* c* T! G- m9 u, C+ b  H8 y& }: w. ?8 A
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))& {3 D, t4 Y6 v4 M* c! y  i
hold on
0 V" k, b2 i* T. t* v: vplot(t,p)
6 K- L+ i' _. M$ {/ ]  k4 q这个时候代码无报错,但绘图只有坐标轴没有图像
7 L9 P5 b7 h. R+ ]$ m! C# S& r' Y8 I$ X# @9 N4 A; R# ^' n
希望大神们可以给小弟指一指错误,谢谢大家
/ n3 E' q3 }  L  A5 t  m0 \$ d" g# t
  • TA的每日心情

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

    [LV.1]初来乍到

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

    + N5 I9 K4 E3 R6 u. I3 {按照你的代码p是定值,你少写了一个点,正确代码如下
    ' b) E/ c0 U, ]6 @3 \, k9 ^  S' P) Ap=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。
    , t; T7 z. b* l& v. j/ l改成' {( R4 k, g8 |4 r- t
    syms t
    - |8 e+ \# {/ _- fx = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);
    " f( D1 H2 `9 F/ A) y# r/ wy = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);" F9 R& m( [+ ]1 p3 Z* g
    dx1 = diff( x );
    / V; F! P% {6 G" ~) S* kdy1 = diff( y );& P* G4 z: D6 M) N# [" z
    dx11 = diff( x, 2 );6 u/ y3 R6 Z' T9 z
    dy11 = diff( y, 2 );8 d! G" X- c- i/ w
    p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));/ I2 q8 s- V, j+ I/ v# i
    PFunction = matlabFunction( p );' d) m" B, m2 t8 O0 t# g  s
    t = 0 : 0.001 : (13*pi/18);: C8 Y% w/ X' C+ `- M, ^
    p = PFunction( t );
    3 j$ m' l  @" J% |plot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32
    % v$ b' J; E* z) ~0 A不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...

    # l9 }8 P0 y) R按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。
    , r+ t  V- z/ {; M7 g; H! m然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。8 g- N' y6 P$ r. W3 e* h5 X
    这是改正后的代码+ i8 K& t2 `9 J& |8 ~4 Q# u4 F
    t=0:0.001: (13*pi/18)8 F* U6 f& [) J7 f
    x=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)
      U5 O3 P9 x2 d1 c$ Hy=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)7 i1 j0 m6 p8 M8 J
    dx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)# ^- E6 f3 L) K4 A1 v" x& g5 V( r
    dy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)
    6 d5 m2 V% x2 k8 cdx11=-(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)( x$ `/ g5 D9 z. e+ ?
    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)
    5 c; b& B( E! Sp=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))
    8 I* O/ u9 R$ `9 \1 K; p* b  _hold on
    2 s0 N# y$ x+ @plot(t,p)( k1 }. z7 h, Z2 _, s9 Y

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34; b/ K3 w7 e- |) u8 I; @
    按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。
    3 d; z9 v* J6 E) u然后我又按照解析 ...
    - R2 M9 ]+ f; ~) N5 }2 B# s4 v. k
    除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。# M( u  a- ]5 X: r
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-18 18:12 , Processed in 0.125000 second(s), 28 queries , Gzip On.

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

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

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