声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 933|回复: 2

[综合讨论] 关于数组之间的运算问题----寻求帮助

[复制链接]
发表于 2009-9-26 09:13 | 显示全部楼层 |阅读模式

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

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

x
结构共振时其动静反应比计算如下
4DE44A46-83DC-4BF2-B508-F03F8E025E61.jpg
计算如下:
clear all
w=2*pi/1.5;                      %%w为常数
t=0:0.1*pi/w:30*pi/w         %%t为1*301向量
xi=[0.02,0.03,0.05,0.1,0.2,0.3];   %%t为1*6向量

问题是:
怎样得到R(t),它应该是一个关于(t,xi)的6*301的矩阵
数组运算之间的整合我不是太懂,还请大家多多帮助!!
注意:xi同时存在于计算的分子和分母

不想用循环

[ 本帖最后由 allenfieldin 于 2009-9-26 09:16 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-9-26 10:35 | 显示全部楼层
我想你是要做一个R(t,xi)的表格吧,如果我没理解错的话。所以图片里的公式应该是R(t,xi)而不是R(t)。
如果是这样的话,用循环的方法更容易理解,就这个问题的规模来说速度也不慢。
不过,还是有办法避免使用循环的,下面的代码仅供参考。

  1. clear all
  2. w=2*pi/1.5;                      %%w为常数
  3. t=(0:0.1*pi/w:30*pi/w)' ;        %%t为1*301向量
  4. xi=[0.02,0.03,0.05,0.1,0.2,0.3]';   %%t为1*6向量
  5. for ii=1:length(t)
  6.     for jj=1:length(xi)
  7.         R1(jj,ii)=(exp(-xi(jj)*w*t(ii))-1)*cos(w*t(ii))/2/xi(jj);
  8.     end
  9. end

  10. R2=(exp(-xi*w*t')-1).*repmat(cos(w*t)',6,1)./repmat(xi,1,301)/2;
  11. norm(R1-R2) %验证非循环的方法求解结果是否正确
复制代码

[ 本帖最后由 sogooda 于 2009-9-26 10:36 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2009-9-26 19:51 | 显示全部楼层
太感谢sogooda 了,我验证了一下,没问题
而且我现在也终于明白怎样进行不同维数数组之间的运算了,特别是这个Reshape函数真的很有用,对点乘也清楚了一点,呵呵
谢谢sogooda !
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 17:29 , Processed in 0.084770 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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