matlab求两向量夹角_MATLAB概率和统计(2)

本文介绍了MATLAB中用于向量和矩阵操作的函数,包括max、min求最大最小值,mean计算平均值,median求中位数,std和var计算标准差和方差,cov求协方差,以及corrcoef计算相关系数。同时展示了这些函数的使用示例和相关统计概念。
摘要由CSDN通过智能技术生成

7.max和min函数

函数max和min用于求向量或者矩阵的最大或最小元素,它们的调用格式基本相同,这里以max为例进行说明。

(1)C=max(A):输入参数A可以是向量或矩阵,若为向量,则返回该向量中所有元素的最大值;若为矩阵,则返回一个行向量,向量中各个元素分别为矩阵各列元素的最大值。

(2)C=max(A,B):比较A、B中对应元素的大小,A、B可以是矩阵或向量,要求尺寸相同,返回一个A、B中比较大元素组成的矩阵或向量。另外A、B中也可以有一个为标量,返回与该标量比较后得到的矩阵或向量。

(3)C=max(A,[],dim):返回A中第dim维的最大值。

(4)[C,I]=max(…):返回向量或矩阵中的最大值及其下标值。

【例4-22】  函数max和min使用示例。

>> A=magic(4)

A =

    16     2     3    13

     5    11    10     8

     9     7     6    12

     4    14    15     1

>> max(A)                    %  求最大值

ans =

    16    14    15    13

>> min(A)                    %  求最小值

ans =

     4     2     3     1

>> B=reshape(1:16,4,4)

B =

     1     5     9    13

     2     6    10    14

     3     7    11    15

     4     8    12    16

>> max(A,B)                  %  两个矩阵比较

ans =

    16     5     9    13

     5    11    10    14

     9     7    11    15

     4    14    15    16

>> [C,I]=min(A,[],2)       %  求行最小值并返回下标

C =

     2

     5

     6

     1

I =

     2

     1

     3

     4

8.mean函数

mean函数用于求向量或矩阵的平均值,其调用语法如下。

(1)M=mean(A):若输入参数A为向量,就返回该向量所有元素的平均值;若为矩阵,则返回每列元素的平均值。

(2)M=mean(A,dim):返回矩阵A第dim维方向各元素的平均值。

【例4-23】  mean函数使用示例。

>> A = reshape(1:25,5,5)

A =

     1     6    11    16    21

     2     7    12    17    22

     3     8    13    18    23

     4     9    14    19    24

     5    10    15    20  

首先,绘制有夹角个平面可以通过绘制个不平行的向量来实现。具体步骤如下: 1. 定义个不平行的向量v1和v2,可以通过构造个起点不同且不在同一条直线上的向量来实现。 2. 计算向量的叉积v3,v3的方向垂直于v1和v2所在的平面。 3. 通过v1和v3构造一个新的向量v4,v4与v1所在的平面的夹角为所夹角。 4. 将v1和v2所在的平面旋转至v1与x轴的夹角为0度,然后绘制v1和v4所在的平面。 代码实现如下: ```matlab v1 = [1, 2, 3]; % 定义向量v1 v2 = [4, 5, 6]; % 定义向量v2 v3 = cross(v1, v2); % 计算v1和v2的叉积,得到垂直于v1和v2所在平面的向量v3 v4 = cross(v1, v3); % 构造v1和v3的叉积,得到与v1所在平面夹角为所夹角向量v4 % 将v1和v2所在平面旋转至v1与x轴的夹角为0度,并绘制v1和v4所在平面 theta = atan2d(v1(2), v1(1)); % 计算v1与x轴的夹角,单位为度数 R = [cosd(theta), sind(theta), 0; -sind(theta), cosd(theta), 0; 0, 0, 1]; % 构造旋转矩阵 v1_rot = R * v1'; % 将v1旋转至x轴正方向 v4_rot = R * v4'; % 将v4旋转至与v1所在平面重合 normal = cross(v1_rot, v4_rot); % 计算平面法向量 [x, y] = meshgrid(-5:0.1:5); % 定义网格 z = -(normal(1)*x + normal(2)*y) / normal(3); % 计算平面方程 surf(x, y, z); % 绘制平面 xlabel('X'); ylabel('Y'); zlabel('Z'); ``` 对于向量夹角,可以使用`dot`函数和`norm`函数实现。具体步骤如下: 1. 计算向量的点积dot(v1, v2)。 2. 计算向量的模norm(v1)和norm(v2)。 3. 通过点积和模的乘积计算向量夹角angle = acosd(dot(v1, v2) / (norm(v1) * norm(v2))),单位为度数。 代码实现如下: ```matlab v1 = [1, 2, 3]; % 定义向量v1 v2 = [4, 5, 6]; % 定义向量v2 angle = acosd(dot(v1, v2) / (norm(v1) * norm(v2))); % 计算v1和v2的夹角,单位为度数 disp(angle); % 输出结果 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值