首页 > 编程知识 正文

matlab两向量的夹角怎么求,matlab两个向量求夹角

时间:2023-05-05 14:06:42 阅读:249204 作者:930

问题描述:

matlab 一个向量和矩阵中各行向量的夹角余弦值

比如A=(1,2,3,4,5)

B={1,2,3,4,5;

6,7,8,9,10;

11,12,13,14,15;

16,17,18,19,20}

分别求向量A与矩阵B中各行向量的夹角余弦值

并输出最大的夹角余弦值

1个回答

分类:

综合

2014-12-12

问题解答:

我来补答

楼主试试下述代码:

%{

matlab 一个向量和矩阵中各行向量的夹角余弦值

比如A=(1,2,3,4,5)

B={1,2,3,4,5;

6,7,8,9,10;

11,12,13,14,15;

16,17,18,19,20}

分别求向量A与矩阵B中各行向量的夹角余弦值

并输出最大的夹角余弦值,及所对应的具体是哪一行向量

%}

function [CosXY MaxCos MaxCosAngle RCMaxCos MinCos MinCosAngle RCMinCos] = ucos(X,Y)

% ucos功能:

% (1) 计算矩阵 X 的各行向量与矩阵 Y 的各行向量之间的夹角余弦,存储在输出项 CosXY 中;

% (2) 计算最大夹角余弦值及其所对应的角度,分别存储在输出项 MaxCos 和 MaxCosAngle 中;

% (3) 输出最大余弦值所对应的 X 和 Y 所在的行,存储在 RCMaxCos 中;

% (4) 计算最小夹角余弦值及其所对应的角度,分别存储在输出项 MinCos 和 MinCosAngle 中;

% (5) 输出最小余弦值所对应的 X 和 Y 所在的行,存储在 RCMinCos 中;

[rx cx] = size(X);

[ry cy] = size(Y);

if cx~=cy

error('输入的矩阵类型不匹配,输入的矩阵X和Y必须列数相同')

end

CosXY = zeros(rx,ry);

for k = 1:rx

for l = 1:ry

CosXY(k,l) = sum(X(k,:).*Y(l,:))/norm(X(k,:))/norm(Y(l,:));

end

end

MaxCos = max(max(CosXY));

MaxCosAngle = acos(MaxCos);

[r c] = find(CosXY==MaxCos); % 找出最大余弦值所在的行r和列c;

RCMaxCos = [r c];

disp(['最大余弦值出现在X的第 ' num2str(r) ' 行与Y的第 ' num2str(c) ' 行.'])

MinCos = min(min(CosXY));

MinCosAngle = acos(MinCos);

[r c] = find(CosXY==MinCos); % 找出最小余弦值所在的行r和列c;

RCMinCos = [r c];

disp(['最小余弦值出现在X的第 ' num2str(r) ' 行与Y的第 ' num2str(c) ' 行.'])

执行你的数据:

>> A = [1,2,3,4,5];

>> B = [1,2,3,4,5;

6,7,8,9,10;

11,12,13,14,15;

16,17,18,19,20];

>> [CosXY MaxCos MaxCosAngle RCMaxCos MinCos MinCosAngle RCMinCos] = ucos(A,B);

最大余弦值出现在X的第 1 行与Y的第 1 行.

最小余弦值出现在X的第 1 行与Y的第 4 行.

CosXY = [ 1 0.964950504732767 0.945343100616969 0.935153458570522]

MaxCos = 1

MaxCosAngle = 0

RCMaxCos = [1 1]

MinCos = 0.935153458570522

MinCosAngle = 0.362104308112746

RCMinCos = [1 4]

再问: 谢谢,ok了,还有个小问题,如果每个行向量对应一个特定的成语,怎么输出最大余弦值对应行向量那个成语呢,

再答: 成语?不明白。 要把问题描述得更清晰些 才好下手写代码。

再问: 恩 比如Y={1,2,3,4;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20}中各行向量分别对应a,b,c,d;上面计算得出,最大余弦值出现在X的第 1 行与Y的第 1 行.,怎么自动找到与Y第一行对应的a并输出,感觉说的不是太清楚,可以的话留个qq。谢谢啊

再答: 是要输出最大余弦值对应的两个行向量? QQ: 2532757010

展开全文阅读

Struts2的​HTML非表单标签有哪些Java中cas的实现原理是什么​Struts2的逻辑控制标签怎么使用

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。