Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2010-04-18, 20:35   #1
半條龍
初级会员
 
注册日期: 2010-03-10
帖子: 19
声望力: 16
半條龍 正向着好的方向发展
默认 请帮修改一个矩阵 分多个3*1后相乘的程序

小弟愚笨深感抱歉一直烦劳板上各位
恳请板上英雄出动谢谢
最下面有写程序但是目前又遇到其妙的事 便是A与B改有实虚数变不行
本来例题
A=[1 1 1;1 2 3;1 3 2];
B=[ 0.0003 1001
0.0002 1002
0.0001 1003
0.0004 2001
0.0005 2003
0.0006 3003]
求C
步骤
看B第二列千位数值皆为相同数字表示为同一个3*1的矩阵
个位数值表示B的第一列该放入为3*1的哪个位置
EXE
先看B第二列千位数=1 找到第一列 [0.0003;0.0002;0.0001]
放入3*1的记忆体中 X=[0.0003;0.0002;0.0001]
A*X放入C 此时 C=[0.0006;0.00010;0.00011]
再看B第二列千位数=2 找到第一列 [4;5]
但是不满3*1所以便看个位数值缺2所以補0 X=[0.0004;0;0.0005]
A*X放入C 此时 C=[0.0006;0.0010;0.0011;0.0009;0.0019;0.0014]
再看B第二列千位数=3 找到第一列 [4;5]
但是不满3*1所以便看个位数值缺1.2所以補0 X=[0;0;0.0006]
A*X放入C 此时 C=[0.0006;0.0010;0.0011;0.0009;0.0019;0.0014;0.0006;0.0018;0.0012]


想改题目
程序方法与之前没变只是改A矩阵有角度却出现错误

A=(1./3)*[1 1 1;1 120度 240度;1 240度 120度];
B(:,1) = [-18.0000000000000 - 8.70000000000000i;1.46557898707538 + 19.9384572681199i;16.5344210129246 - 11.2384572681199i;]
B(:,2) =[1001;1002;1003]

程序:
complex1 = cosd(120)+i*sind(120);
complex2 = cosd(-120)+i*sind(-120);
Am = (1./3)*[1 1 1;1 complex1 complex2;1 complex2 complex1];
K=[(-18.0000000000000-8.70000000000000*i) 1001;
(1.46557898707538+19.9384572681199*i) 1002;
(6.5344210129246-11.2384572681199*i) 1003];
B(:,1) = K(:,1);
B(:,2) = K(:,2);
G=int32(B(:,2));
D=[idivide(G,1000) mod(G,1000)];
E=sub2ind([D(end,1),3],D(:,1),D(:,2));
F=zeros(D(end,1),3);
F(E)=B(:,1);
F2=(Am*F');
F3 = size(F2);
rowindex = sum(F2==0,2)==size(F2,2);
colindex = sum(F2==0,1)==size(F2,1);
F2(rowindex, = [];
F2(:,colindex) = [];
F3 = F2;
C=F3(;

结果C:
-3.33333333333334 - 4.44089209850063e-16i
1.66666666666667 + 2.88675134594813i
-16.3333333333333 + 5.81324865405187i

但是单纯正解的测试
Y=[-18.0000000000000 - 8.70000000000000i;1.46557898707538 + 19.9384572681199i;16.5344210129246 - 11.2384572681199i;]
Am = (1./3)*[1 1 1;1 complex1 complex2;1 complex2 complex1];
R=Am*Y;
结果正解C=R:
-7.10542735760100e-15 + 4.44089209850063e-16i
-18.0000000000000 - 8.70000000000000i
5.77315972805081e-15 - 2.66453525910038e-15i


求救帮求出R

此帖于 2010-04-19 07:44 被 半條龍 编辑。
半條龍 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 20:13


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.