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

MATLAB终端速度计算中,e的多项式次幂触发矩阵幂维度错误

MATLAB指数运算维度错误的解决方案

你的错误根源不是exp(1)或euler(1)被识别为矩阵,而是误用了矩阵幂运算符^。MATLAB中:

  • ^是针对方阵的矩阵幂运算,要求操作数为方阵;
  • .^是逐元素幂运算,用于对向量/矩阵的每个元素单独计算指数。

你的代码里time是linspace(0,10,1000)生成的1000元素向量,括号内的表达式2*sqrt(...)*time会得到同维度的向量。用e^向量时,MATLAB会尝试执行矩阵幂运算,自然触发维度不匹配错误。

修正后的代码

e = exp(1); % 用exp(1)即可,无需euler(1)

app.MaxMassEditField.Value = 100;
app.AreaEditField.Value = 1;
app.DragCoefficientEditField.Value = 1;
app.gEditField.Value = 1;
app.MediumDensitryEditField.Value = 1;
app.MassSlider.Limits = [10^(-7), app.MaxMassEditField.Value];

time = linspace(0, 10, 1000);
% 提取重复计算的系数,简化代码结构
coeff = 2 * sqrt( (app.gEditField.Value * app.AreaEditField.Value * app.MediumDensitryEditField.Value * app.DragCoefficientEditField.Value) / (2 * app.MassSlider.Value) );
% 替换^为.^,执行逐元素指数运算;除法也用./保证逐元素计算
velocity = - (1 - e.^(coeff * time)) ./ (1 + e.^(coeff * time));

plot(app.UIAxes, time, velocity)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:53:12