24小时热门版块排行榜    

查看: 772  |  回复: 10

zhushuwei32

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
阿乐斗士: 金币+10, ★★★很有帮助 2014-11-23 23:08:47
引用回帖:
9楼: Originally posted by 阿乐斗士 at 2014-11-22 09:16:10
谢谢回帖!
是我没有表达清楚,要得到C是一个三行三列矩阵,每个元素cij=(aijxbij)/|aij||bij|
是不是不用要C这步C=[];和C=;了
另外将for i=1:m
D=A(i,.*B(i,/(norm(A(i,)*norm(B(i,));
改为
for i=1:m
  f ...

我之前也没仔细看你的问题呢,A实际上不就是一个3行9列的矩阵了,每行3个向量,3行9个向量,如果是求余弦的话就不能用点乘了。你看下面这样行不,能不能满足你的要求,我只会用些笨方法,B里边用一个转置符号转化成列向量再与A中对应的行向量相乘,最终C是一个三行三列矩阵
clc
clear
A=randn(3,9);
B=randn(3,9);
[m n]=size(A);
C=zeros(m,n/3);
for i=1:m
    for j=1:n/3
        C(i ,j)=A(i,3*(j-1)+1:3*(j-1)+3)*B(i,3*(j-1)+1:3*(j-1)+3)'...
            /(norm(A(i,3*(j-1)+1:3*(j-1)+3))*norm(B(i,3*(j-1)+1:3*(j-1)+3)));
    end
end
11楼2014-11-23 13:44:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 阿乐斗士 的主题更新
信息提示
请填处理意见