24小时热门版块排行榜    

查看: 578  |  回复: 8
当前主题已经存档。

duan2008

铁杆木虫 (著名写手)

[交流] 一段MATLAB程序求助。

请高手帮帮忙写一下一个简单的MATLAB程序,要求是那样的:
假设A为一行矩阵,即A=[A1 A2 A3 A4 A5 ...AN];其中AN是任意的自然数,且元素个数不确定,如可能A=[1 4 2 7 3]或其他的行矩阵,输入那样的矩阵A后,运行M文件,得到要求的矩阵B。求N*N阶矩阵B,
B=[A1/A1 A1/A2 A1/A3  A1/A4 A1/A5.....A1/AN
      A2/A1 A2/A2 A2/A3 A2/A4 A2/A5.....A2/AN
     ................................................................
     AN/A1 AN/A2 AN/A3 AN/A4 AN/A5.....AN/AN]
即对角线上为1,上三角与下三角的值是倒数关系,
如运行M文件,输入A=[1 4 7 2 4],得到B=[1 1/4 1/7 1/2 1/4
                                                                    4 1 4/7 4/2 4/4
                                                                    7 7/4 1 7/2 7/4
                                                                    2 2/4 2/7 1 2/4
                                                                    4 4/4 4/7 4/2 1].

请高手帮忙,谢谢!!!!

[ Last edited by duan2008 on 2009-11-9 at 09:31 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

marineman

至尊木虫 (知名作家)

爱八卦爱生活

★ ★ ★ ★
duan2008(金币+2,VIP+0): 11-9 18:53
duan2008(金币+2,VIP+0):谢谢你啊O(∩_∩)O~ 11-9 22:21
for i=1:1:N
B(i,=A(1,i)./A;
end
2楼2009-11-09 09:18:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

marineman

至尊木虫 (知名作家)

爱八卦爱生活

★ ★ ★
duan2008(金币+3,VIP+0): 11-9 18:53
A=[1 2 3 4 5];

B=[1        0.5        0.3333        0.25        0.2
2        1        0.6667        0.5        0.4
3        1.5        1        0.75        0.6
4        2        1.3333        1        0.8
5        2.5        1.6667        1.25        1
]
3楼2009-11-09 09:19:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duan2008

铁杆木虫 (著名写手)

引用回帖:
Originally posted by marineman at 2009-11-9 09:18:
for i=1:1:N
B(i,=A(1,i)./A;
end

A=[A1 A2 ...AN],其中AN是任意的自然数,且元素个数不确定,如可能A=[1 4 2 7 3]或其他的行矩阵,输入那样的矩阵A后,运行M文件,得到要求的矩阵B。高手,谢谢!!!
4楼2009-11-09 09:24:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zqfalcon

木虫 (著名写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
duan2008(金币+10,VIP+0):谢谢高手O(∩_∩)O~ 11-9 18:53
我给你个正解吧:


AN=size(A,2); %求取向量A的维数
for i=1:1:AN
    for j=1:1:AN
        B(i,j)=A(i)/A(j);
    end
end
5楼2009-11-09 10:02:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duan2008

铁杆木虫 (著名写手)

引用回帖:
Originally posted by zqfalcon at 2009-11-9 10:02:
我给你个正解吧:


AN=size(A,2); %求取向量A的维数
for i=1:1:AN
    for j=1:1:AN
        B(i,j)=A(i)/A(j);
    end
end

谢谢你,我把你的编辑进去,程序如下:
disp('     请输入矩阵A(n阶)');
A=input('A=');   %输入各层的判断矩阵
AN=size(A,2); %求取向量A的维数
for i=1:1:AN
    for j=1:1:AN
        B(i,j)=A(i)/A(j);
    end
end
disp('B=');disp(B');
运行该程序:输入矩阵任意矩阵后A=[10 7 4 1],
得到如下结果:
B=
    1.0000    0.7000    0.4000    0.1000
    1.4286    1.0000    0.5714    0.1429
    2.5000    1.7500    1.0000    0.2500
   10.0000    7.0000    4.0000    1.0000

结果好像正好反了,按我的要求是要得到
B=
    1.0000  1.4286  2.5000 10.0000
     0.7000 1.0000  1.7500 7.0000
     0.4000 0.5714   1.0000 4.0000
     0.1000  0.1429   0.2500 1.0000

所以还要修改一下,谢谢。
是不是求矩阵的转置,C=B'?
6楼2009-11-09 18:50:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

marineman

至尊木虫 (知名作家)

爱八卦爱生活

引用回帖:
Originally posted by duan2008 at 2009-11-9 18:50:
谢谢你,我把你的编辑进去,程序如下:
disp('     请输入矩阵A(n阶)');
A=input('A=');   %输入各层的判断矩阵
AN=size(A,2); %求取向量A的维数
for i=1:1:AN
    for j=1:1:AN
        B(i,j)=A(i)/A ...

稍稍修改一下就可以。
clear;clc
A=[10 7 4 1];
AN=size(A,2); %求取向量A的维数
for i=1:1:AN
        B(i,: )=A(1,i)./A;
end
disp(B)
7楼2009-11-09 20:05:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

marineman

至尊木虫 (知名作家)

爱八卦爱生活

结果

    1.0000    1.4286    2.5000   10.0000
    0.7000    1.0000    1.7500    7.0000
    0.4000    0.5714    1.0000    4.0000
    0.1000    0.1429    0.2500    1.0000
8楼2009-11-09 20:06:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zqfalcon

木虫 (著名写手)

★ ★ ★
duan2008(金币+3,VIP+0):在此谢谢热心的高手O(∩_∩)O~ 11-9 22:21
引用回帖:
Originally posted by duan2008 at 2009-11-9 18:50:


谢谢你,我把你的编辑进去,程序如下:
disp('     请输入矩阵A(n阶)');
A=input('A=');   %输入各层的判断矩阵
AN=size(A,2); %求取向量A的维数
for i=1:1:AN
    for j=1:1:AN
        B(i,j)=A(i)/A ...

晕死了,你最后那句话写错了,是disp(B),而不是disp(B'),我给你回复的程序是正确的。
PS: marineman同志使用了向量化操作进行求解,效率更高,赞一个,不过我的代码更直观易懂点

[ Last edited by zqfalcon on 2009-11-9 at 20:54 ]
9楼2009-11-09 20:49:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 duan2008 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见