You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中如何计算xy平面两向量模长差值的余弦平方值

Matlab 计算 $\boldsymbol{\cos^2(|r_1|-|r_2|)}$ 实现方法

运算步骤拆分

你需要计算的表达式可以拆为三个独立运算环节,对应Matlab的不同内置函数:

  • 计算xy平面两个二维向量r1、r2的模长(即表达式中的$|r_1|$、$|r_2|$)
  • 计算两个模长的差值
  • 对差值求余弦值后做平方运算,得到最终结果

可直接运行的实现代码

下面是逐行标注的基础实现,适合新手对照理解:

% 替换下面四个变量为你实际的坐标值即可
x1 = 1; 
y1 = 2; % 二维向量r1的x、y分量
x2 = 3;
y2 = 4; % 二维向量r2的x、y分量

% 组装为Matlab行向量格式
r1 = [x1, y1];
r2 = [x2, y2];

% 用内置norm函数计算向量欧氏模长,等价于手动计算sqrt(x^2 + y^2)
mod_r1 = norm(r1);
mod_r2 = norm(r2);

% 计算模长差
mod_diff = mod_r1 - mod_r2;

% 计算余弦平方:注意cos()默认输入为弧度单位
final_result = cos(mod_diff)^2;

% 如果你使用的模长差是角度单位,注释掉上一行,改用下面的代码
% final_result = cosd(mod_diff)^2;

新手易踩的注意点

  • Matlab内置三角函数分弧度、角度两个版本:函数名不带d的(比如cos、sin)输入为弧度值,带d的(比如cosd、sind)输入为角度值,根据你实际的物理量单位选择即可
  • 如果你需要批量计算多组坐标的结果,把坐标变量定义为同长度的数组,平方、乘法、除法运算要改用点运算符(.^、.*、./),对应批量计算的代码片段示例:
% 批量计算示例:x1为100组坐标的x分量数组
x1 = rand(100,1); y1 = rand(100,1);
x2 = rand(100,1); y2 = rand(100,1);
mod_r1 = sqrt(x1.^2 + y1.^2);
mod_r2 = sqrt(x2.^2 + y2.^2);
final_result = cos(mod_r1 - mod_r2).^2;

内容的提问来源于stack exchange,提问作者user19430560

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 12:01:06