声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2400|回复: 15

[综合讨论] 问大家一个矩阵乘法的问题哈

[复制链接]
发表于 2009-5-10 15:34 | 显示全部楼层 |阅读模式

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

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

x
syms w
>> M=[40.99 0 0 0 0 0 ;0 1959 0 0 0 0;0 0 4.36 0 0 0;0 0 0 1.47 0 0;0 0 0 0 4.36 0;0 0 0 0 0 1.47];
C=[120 0 -60 0 -60 0;0 7300.8 468 0 -468 0;-60 468 60 0 0 0;0 0 0 0 0 0;-60 -468 0 0 60 1;0 0 0 0 0 0];
K=[4240 0 -2120 0 -2120 0;0 25800 16500 0 -16500 0;-2120 16500 14000 0 0 0;0 0 0 18600 0 0;-2120 -16500 0 0 14000 0;0 0 0 0 0 18600];
>> N=inv(K-w^2*M+i*w*C);
C1=[0 0 0 0;0 0 0 0;-234 -234 0 0;408 -408 0 0;0 0 -238 -238;0 0 408 -408];
K1=[0 0 0 0;0 0 0 0;-126 -126 0 0;246 -246 0 0;0 0 -126 -126;0 0 246 -246];
>> L=K1+i*w*C1;
>> H(w)=N*L
??? Error using ==> subsindex
Function 'subsindex' is not defined for values of class 'sym'.
为什么会出错呢,麻烦大家给我看一看
回复
分享到:

使用道具 举报

发表于 2009-5-10 17:40 | 显示全部楼层
index不允许使用符号!

评分

1

查看全部评分

发表于 2009-5-10 18:00 | 显示全部楼层
H(w)=N*L改为H=N*L

评分

1

查看全部评分

 楼主| 发表于 2009-5-10 20:58 | 显示全部楼层

回复 板凳 friendchj 的帖子

谢谢了大家了,哈哈
 楼主| 发表于 2009-5-10 21:14 | 显示全部楼层

大家帮帮忙看一下

syms w
M=[40.99 0 0 0 0 0 ;0 1959 0 0 0 0;0 0 4.36 0 0 0;0 0 0 1.47 0 0;0 0 0 0 4.36 0;0 0 0 0 0 1.47];
C=[120 0 -60 0 -60 0;0 7300.8 468 0 -468 0;-60 468 60 0 0 0;0 0 0 0 0 0;-60 -468 0 0 60 1;0 0 0 0 0 0];
K=[4240 0 -2120 0 -2120 0;0 25800 16500 0 -16500 0;-2120 16500 14000 0 0 0;0 0 0 18600 0 0;-2120 -16500 0 0 14000 0;0 0 0 0 0 18600];
N=inv(K-w^2*M+i*w*C);
C1=[0 0 0 0;0 0 0 0;-234 -234 0 0;408 -408 0 0;0 0 -238 -238;0 0 408 -408];
K1=[0 0 0 0;0 0 0 0;-126 -126 0 0;246 -246 0 0;0 0 -126 -126;0 0 246 -246];
L=K1+i*w*C1;
H=N*L;
h1=[1 exp(-i*w*4) exp(-i*w*6) exp(i*w*10)]';
h=H*h1
h2=-w^2*h;
G=abs(h2)^2
为什么这段程序运行之后还出现虚数单位i 哟,请大家帮帮忙看一下,怎么改正,摆脱了
发表于 2009-5-10 22:24 | 显示全部楼层
你自己在里面输入的时候用到了符号i啊

一般情况下 不要用i j 作为符号
 楼主| 发表于 2009-5-10 22:41 | 显示全部楼层

回复 沙发 无水1324 的帖子

可傅立叶变换里面有i 呀,我是直接从纸上进行傅立叶变换,然后再编程求功率谱
因为我微分方程组的傅立叶变换和功率谱我不会用MATLAB求,请问你有相关的程序吗
发表于 2009-5-10 23:00 | 显示全部楼层
个人水平专业有限, LZ的问题已非编程问题, 应该已是专业问题!
 楼主| 发表于 2009-5-11 08:31 | 显示全部楼层

求助一个程序问题

请大家帮我看一下,为什么程序运行完之后,结果里面含有i 呢
syms w
>> M=[40.99 0 0 0 0 0 ;0 1959 0 0 0 0;0 0 4.36 0 0 0;0 0 0 1.47 0 0;0 0 0 0 4.36 0;0 0 0 0 0 1.47];
C=[120 0 -60 0 -60 0;0 7300.8 468 0 -468 0;-60 468 60 0 0 0;0 0 0 0 0 0;-60 -468 0 0 60 1;0 0 0 0 0 0];
K=[4240 0 -2120 0 -2120 0;0 25800 16500 0 -16500 0;-2120 16500 14000 0 0 0;0 0 0 18600 0 0;-2120 -16500 0 0 14000 0;0 0 0 0 0 18600];
>> N=inv(K-w^2*M+i*w*C);
C1=[0 0 0 0;0 0 0 0;-234 -234 0 0;408 -408 0 0;0 0 -238 -238;0 0 408 -408];
K1=[0 0 0 0;0 0 0 0;-126 -126 0 0;246 -246 0 0;0 0 -126 -126;0 0 246 -246];
>> L=K1+i*w*C1;
>> H=N*L;
h=abs(H)

评分

1

查看全部评分

发表于 2009-5-11 11:07 | 显示全部楼层
建议楼主看下本版规则!
相同或相近内容的话题,请勿开新贴,一帖发完!
发表于 2009-5-11 17:28 | 显示全部楼层
ABS后还出现i,不理解
发表于 2009-5-11 18:39 | 显示全部楼层
1. 出现i不是程序的问题,应该是你问题的需要。在N=inv(K-w^2*M+i*w*C);中已经出现虚数单位i;
2. 不知abs对符号表达式的作用是什么,但不是取模,试了试:
syms x
a=1+i*x;
abs(a)=abs(1+i*x)
3. 若想不出现i,可对H先赋值再取模,如,abs(subs(H,.5))

评分

1

查看全部评分

 楼主| 发表于 2009-5-11 21:04 | 显示全部楼层

回复 12楼 friendchj 的帖子

十分感谢你,但是我不知道abs(subs(H,.5))是什么意思,H是一个列向量,而且它里面还包含未知量w,怎么照你说的算出来是一个6*6的数字矩阵,而且不包含w,我要画出abs(H)关于w的图像,你知道怎么画吗,请帮帮忙吧,摆脱你了
发表于 2009-5-11 21:27 | 显示全部楼层

回复 13楼 冲动 的帖子

你所谓的画图像是什么意思,w每取一次值,得到一个矩阵H,取多个w,就会得到多个H,然后怎么做?
关于subs,看看help。
发表于 2009-5-11 21:50 | 显示全部楼层

回复 13楼 冲动 的帖子

不知该讲否! 个人较不喜欢问题未交代缘由!
若LZ一开始就能简单交代下原来的问题, 不是劈头看一看! 或许他人更容易出主意!
总觉得LZ的问题, 好像不一定得使用symbol? 或许使用简单的途径同样能达到目的!
没帮着! 想想参考下!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-11 21:24 , Processed in 0.077538 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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