声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1971|回复: 15

[编程技巧] 【求助】请大家帮我看看错在哪了,万分感激(非常简单的程序)!

[复制链接]
发表于 2008-10-6 09:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好,我是Matlab初学者,编的第一个程序,老是出错,郁闷的不行了,请各位帮我看看哪出问题了,谢谢了。

syms w;
ZF=j*(300*w-2700/w); M=300;Rm=180;S=27000;
Zm=(Rm-j*S/w)/(1+(Rm-j*S/w)/ZF)+j*w*M;
for w=0:1:500
    X1=1/(j*w*Zm);
    figure;
    plot(w,abs(X1)); %想画w和X1振幅的关系图,x轴为频率,y轴为X1振幅
end
title('Displacement amplitude X1 of mass M1');
xlabel('w(rad/s)');
ylabel('amplitude(m)');

[ 本帖最后由 tangxi 于 2008-10-6 14:28 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-10-6 11:16 | 显示全部楼层
根据错误提示,一步一步改
发表于 2008-10-6 13:59 | 显示全部楼层
不知道你说的是什么错误
 楼主| 发表于 2008-10-6 14:27 | 显示全部楼层

回复 沙发 花如月 的帖子

谢谢指点,我也是这么操作的,但后面的错误我真不知道怎么改了
 楼主| 发表于 2008-10-6 14:30 | 显示全部楼层

回复 板凳 sigma665 的帖子

比如现在系统提示我“plot(w,abs(X1)); ”错误
可我真不知道哪错了
发表于 2008-10-6 16:01 | 显示全部楼层
plot(w,abs(X1))中的X1是symbol object
不能如此画吧

评分

1

查看全部评分

发表于 2008-10-6 16:04 | 显示全部楼层
第一句去掉
for w=0:1:500
ZF=j*(300*w-2700/w); M=300;Rm=180;S=27000;
Zm=(Rm-j*S/w)/(1+(Rm-j*S/w)/ZF)+j*w*M;

    X1=1/(j*w*Zm);
    figure;
    plot(w,abs(X1)); hold on;%想画w和X1振幅的关系图,x轴为频率,y轴为X1振幅
end
发表于 2008-10-6 21:06 | 显示全部楼层

回复 7楼 sigma665 的帖子

小西,你害我matlab不停的画图,最后只好全关了。呵呵。。。
改成下面这样试试,没有错误了,不过好像还是没有绘出图来,楼主检查一下公式吧。

  1. M=300;Rm=180;S=27000;
  2. for w=1:500
  3.     ZF=j*(300*w-2700/w);
  4.     Zm=(Rm-j*S/w)/(1+(Rm-j*S/w)/ZF)+j*w*M;
  5.     X1(w)=1/(j*w*Zm);
  6. end
  7.     figure;
  8.     plot(w,abs(X1)); hold on;%想画w和X1振幅的关系图,x轴为频率,y轴为X1振幅
复制代码

[ 本帖最后由 sogooda 于 2008-10-6 21:09 编辑 ]
 楼主| 发表于 2008-10-6 22:27 | 显示全部楼层

回复 6楼 ChaChing 的帖子

您好,能不能说得再详细一些,我是菜鸟,没能看明白,谢谢了
 楼主| 发表于 2008-10-6 22:28 | 显示全部楼层

回复 7楼 sigma665 的帖子

小西的程序让我死机了:@L
 楼主| 发表于 2008-10-6 22:30 | 显示全部楼层

回复 8楼 sogooda 的帖子

唉,公式是我从书本上搬过来的,我现在已经晕了:@L
发表于 2008-10-7 09:40 | 显示全部楼层

回复 8楼 sogooda 的帖子

他原来就是这么画的:@L
发表于 2008-10-7 11:16 | 显示全部楼层

回复 9楼 tangxi 的帖子

不好意思, 人老了还在使用旧版matlab, 习惯 & 懒了!
symbolic object我使用较少, 还没空消化完手册, 其他人或许可帮忙

没头没脑, 好像被考试的感觉 ! 不确定你到底是要什麽?
仅能稍修一下, 是你要的吗?
w=1:500; ZF=j*(300*w-2700./w); M=300; Rm=180; S=27000;
Zm=(Rm-j*S./w)/(1+(Rm-j*S./w)/ZF)+j*w*M; X1=1./(j*w.*Zm);
plot(w,abs(X1)); title('Displacement amplitude X1 of mass M1');
xlabel('w(rad/s)'); ylabel('amplitude(m)');
还有自己必须时常找Help文件, 个人也是

评分

1

查看全部评分

 楼主| 发表于 2008-10-7 12:39 | 显示全部楼层

回复 13楼 ChaChing 的帖子

牛人啊,这么简单就搞定了,这就是我要的,谢谢!
发表于 2008-10-8 11:13 | 显示全部楼层
我还以为只有我死机! 这件事突显了论坛的一些现象
  1.很多人都复制指令就直接至matlab执行, 未事先看过指令
  2.许多人回覆, 似乎没先搞清楚/执行过问题指令, 甚至回覆的指令自个儿未执行过
这或许只是个人感觉而已, 不针对特定人, 因我也是犯同样的错
说说大家共勉之

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-3 04:18 , Processed in 0.066463 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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