声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1168|回复: 2

[编程技巧] 求助,如何自己编程实现矩阵相关函数的功能

[复制链接]
发表于 2009-4-23 16:39 | 显示全部楼层 |阅读模式

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

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

x
大家帮我看看,自己编程如何实现矩阵相关(不用函数)我想实现两矩阵的相关(两个608*800大小的矩阵),用函数实现时计算时间很长,而实际上我要求相关的部分只是很少的一部分函数,也就是如果我自己实现的话,时间上会缩短很多
在help中xcorr2的原理如图
A =

     1     1     1     1     1
     1     2     3     1     1
     1     5     1     3     2
     1     1     3     4     1
B =

     2     3     1
     5     1     3
     1     3     4
c=xcorr2(A,B)

     4     7     8     8     8     4     1
     7    15    28    24    19    10     6
     8    34    42    42    43    20     9
     8    28    40    75    43    29    13
     4    12    33    36    35    33     9
     1     4     8    15    19    11     2
现将A扩充为(4+3-1,5+3-1)的矩阵,直接在后面补零
在将B的最后一个元素(3,3)与新生成的矩阵C(1,1)相关,存储在C(1,1),zaijiang B(3,2),B(3,3)与c(1,1),c(1,2)相关存储在 c(1,2).
一次后推,当B的(3,1)与C的(6,7)相关完成之后,实现,B(3,3),B(2,3)与C(1,1)C(2,1),相关,存储在C(2,1)位置,依次后推
下面是我实现的程序
A=[1,1,1,1,1;
    1,2,3,1,1;
    1,5,1,3,2;
    1,1,3,4,1]
B=[2,3,1;
    5,1,3;
    1,3,4]
[r1,c1]=size(A)
[r2,c2]=size(B)

%将搜索图补零 or  m=zeros(r1+r2-1,c1+c2-1);m(1:r1,1:c1) = A;
A_new = padarray(A,[r2-1,c2-1],'post')

%计算相关
for i=1:r1+r2-1
    for j=1:c1+c2-1
   
                for k=(r2:-1:i)
                    for g=(c2:-1:j)
        C(i,j)=A_new(i,j)*conj(B(k,g));
                    end
                end
         
    end
end
C

这个程序出来之后的结果是错的
我不知道该怎么改,我觉得那几个for用的不对,请大家帮我看看
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-4-23 18:49 | 显示全部楼层
有人能指导一下吗?
发表于 2009-4-24 12:16 | 显示全部楼层
错误提示不贴出来,怎么找错啊
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-22 15:47 , Processed in 0.055524 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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