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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
t=0:0.001: (13*pi/18)
& e  r- j7 M: w0 Ex=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t)
, k2 L1 [. c. v' h% \. oy=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)/ y) B$ L/ m2 {8 o% w
dx1=diff(x)
! M! V! f; X* K1 s, ndy1=diff(y)
5 b5 `  W, P# W  L# zdx11=diff(x,2)# R7 P3 ^& k4 D5 N" n$ m$ r
dy11=diff(y,2)
: n0 }6 d' L& F8 C% u$ k: }* T! l; k# Y1 t
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))0 V; Y. W/ r! y% q; l  i5 s# {
hold on
% G0 r& `" B$ u3 M0 i! s: jplot(t,p)
9 L3 B  c) \4 v/ {5 C* X7 l运算时报错矩阵维度必须一致,然后我尝试改了一下。。
' z) D* u5 h" n6 |% yt=0:0.001: (13*pi/18)
8 ~/ c9 O2 o' ~: m4 A6 ^9 @x=-(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t): `  N: I0 m" x
y=(50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t)
( f. x! W/ Q/ M+ u) vdx1=diff(x)
1 ^8 ^% G- E3 M. ~7 Zdy1=diff(y)6 M5 I4 n+ w% A1 S/ Q
dx11=diff(x,2)% ]0 n" q( K# t
dy11=diff(y,2)0 F- F' O! c  o

. W: {% v) v8 W
' Y; i9 E. _7 @8 B, z2 Vdx1=dx1(1:length(dx11))" z* Q5 `. K0 \, n- X
dy1=dx1(1:length(dy11))2 N- H2 K9 X7 A6 z+ |$ y4 K

% o) K! N) D% w# a3 k3 H( d6 ~1 @& ^, T% b. b: c
p=abs(sqrt((dx1.^2+dy1.^2).^3)/(dx1.*dy11-dy1.*dx11))0 h9 S# o. g' _' G0 ~! |) [
hold on) C% ]6 \9 g0 e* K
plot(t,p)" [- ?  e- A, f0 m" [
这个时候代码无报错,但绘图只有坐标轴没有图像, j; C# C/ ^( @/ j
+ s% x7 h3 {1 `2 l
希望大神们可以给小弟指一指错误,谢谢大家2 Q6 W6 }7 Z! j/ a) R# M$ A" {

9 n; V; H$ S+ V- L
  • TA的每日心情

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

    [LV.1]初来乍到

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

    4 V7 H4 X) D! N0 H) j4 W按照你的代码p是定值,你少写了一个点,正确代码如下( P( ?  P' Q; Z1 u( E  o
    p=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11))

    该用户从未签到

    4#
    发表于 2020-7-27 18:32 | 只看该作者
    不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个),你先设置的t向量不可能和后面用差分求出来的p有相同维度的。既然原始的x和y都是t的简单函数,那就直接用解析式求精确微分(而不是用离散向量求差分)。
    + ~8 F, y, P* E& Y+ Q改成
    , t& R! x- p2 s5 m1 osyms t( l  P$ y$ }8 z6 _. E3 l2 G1 _
    x = -(50+32.5*(1-cos(t*18*pi/(13*pi)))).*sin(t)-15*cos(t);# Y+ Y$ y; C1 [  E& r; W; W$ N7 p
    y = (50+32.5*(1-cos(t*18*pi/(13*pi)))).*cos(t)-15*sin(t);
    : }4 A4 u2 n! H# xdx1 = diff( x );; Y- G; g# x; u/ S
    dy1 = diff( y );( t$ _" O0 Q9 I4 |- }; _% N! g
    dx11 = diff( x, 2 );" F3 B# E4 u* G
    dy11 = diff( y, 2 );1 p' X- |! `: l  i/ I5 _" g3 Z$ c& J
    p = abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));
    $ c3 g% a; U' v7 x# s6 I: P( s" r4 I- {) kPFunction = matlabFunction( p );5 D8 j, R. d9 A' ]( V' L
    t = 0 : 0.001 : (13*pi/18);
    / z& o$ c; |" I  Pp = PFunction( t );7 v- d9 x0 }) Q/ K3 E
    plot( t, p )

    点评

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

    该用户从未签到

    5#
     楼主| 发表于 2020-7-27 18:34 | 只看该作者
    thinkfunny 发表于 2020-7-27 18:32
    * {1 x9 J& W7 S* g  t+ ?9 O不是点运算的问题,是离散向量求差分的时候,长度会比原向量少阶数个元素(一阶差分少一个,二阶少两个), ...

    % G; B% N$ L5 s: e- p按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。6 }/ t/ p+ J; }3 ^# @% _8 E
    然后我又按照解析式求导,把得出来的公式输入进去,代码可以正常运算了,但是还是只有坐标轴,绘制不出来图像是怎么回事呀。。; [2 b% E, W& }) [) N7 {
    这是改正后的代码
    ; `, v9 f3 ?& k* _  A- {9 a9 jt=0:0.001: (13*pi/18)6 ^3 f- L- A" T5 P% ?
    x=-(50+32.5*(1-cos(t*18/13))).*sin(t)-15*cos(t)
    5 y. e% K1 }$ Z! o, P+ Zy=(50+32.5*(1-cos(t*18/13))).*cos(t)-15*sin(t)# V0 b2 u, n! j% ~8 V
    dx1=-(50+32.5*(1-cos(t*18/13))).*cos(t)-(45*sin(t*18/13)-15).*sin(t)" e/ L# C3 z% d% V: \1 K
    dy1=-(50+32.5*(1-cos(t*18/13))).*sin(t)+(45*sin(t*18/13)-15).*cos(t)
    ' M# l& D- {0 E$ b6 i7 A3 Tdx11=-(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)
    4 ~. x3 `2 f1 fdy11=(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)
    ( A9 B. g0 o- C0 B5 y, R4 ^- f1 ^p=abs(((dx1.^2+dy1.^2).^(3/2))/(dx1.*dy11-dy1.*dx11))
    / Q0 t! d* u: B2 uhold on
    7 X  `, c) M2 K# J- Q2 z. m# [plot(t,p)  F8 g/ r8 q3 T, z- j. K4 F

    点评

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

    该用户从未签到

    6#
    发表于 2020-7-27 18:35 | 只看该作者
    greensmile 发表于 2020-7-27 18:34
    ' t5 Q2 P% C5 `+ T  k# K2 E" n按照你的回答我运行了一下,结果得出的图像感觉有点奇怪。。不太像是曲率半径的图像。
    / \6 A1 p4 v. g然后我又按照解析 ...
    1 o0 T1 B- v$ c+ S
    除法没用点运算,导致p的维度不对,必须是与t维度相同的向量才能拿来跟t一起绘图。
    4 Q! ]( Q. a; c/ ^/ x( u+ n; r
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-26 20:24 , Processed in 0.109375 second(s), 28 queries , Gzip On.

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

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

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