matlab - 在 MATLAB 中计算积分
问题描述
如屏幕截图所示,如何计算积分,其中j1
是1x3
矩阵,j2
也是1x3
矩阵,g1
而是300x3
矩阵,也是g2
矩阵300x3
。
在屏幕截图中的“。” 表示点积。
实际上 g1 和 g2 是 300x4 矩阵,其中第一行是“t”。第 1 行有 t = 200,第 2 行有 300,依此类推,直到第 300 行有 60000 值。因此,g1 和 g2 实际上依赖于 't'。如果我们把它当作总和,那么这是否正确?
Alpha_gyro = 0;
for i = 1:300
Alpha_gyro_function =(dot(g1(1,2:4),j1) - dot(g2(i,2:4),j2));
Alpha_gyro = Alpha_gyro + Alpha_gyro_function;
end
因此,它将输出作为 1 个数字。但现在我很困惑 'Alpha_gyro(t)' 相对于 't' 的值是多少。即,“Alpha_gyro”也应该是 300x1 的矩阵,对吧?因为它为此目的依赖于“t”,这是否正确?
Alpha_gyro = zeros(300,1)
for i = 1:300
Alpha_gyro_function =(dot(g1(1,2:4),j1) - dot(g2(i,2:4),j2));
Alpha_gyro(i) = Alpha_gyro(i) + Alpha_gyro_function;
end
但是,正如我们所知,积分的值从 0 到“t”的新值,所以每个值都应该是新矩阵中先前值的总和。所以我添加了这个,如果我做得对,请指导?
Alpha_gyro = zeros(300,1);Alpha_gyro_function_old =0 ;
for i = 1:300
Alpha_gyro_function =(dot(g1(1,2:4),G_upd_j1) - dot(g2(i,2:4),G_upd_j2));
Alpha_gyro_function_old = Alpha_gyro_function_old + Alpha_gyro_function;
Alpha_gyro(i) = Alpha_gyro(i) + Alpha_gyro_function_old;
end
解决方案
这是我的解决方案(如果我理解你的任务):
t = g1(:,1); % time values
integrand = g1(:,2:4)*j1' - g2(:,2:4)*j2'; % symbol " ' " mean transpose
alfa_gyro = [];
for i = 2:length(t)
alfa_gyro(i) = trapz(t(1:i), integrand(1:i));
end
result = [t, alfa_gyro'];
推荐阅读
- firebase - 为未经身份验证的用户设置 Firebase 安全规则
- javascript - 如何通过 DateObject 在日期数组中找到最近的过去或未来日期?
- c# - 方法中的参数位置 - 参数 VS CancellationToken
- python - 在 python 中使用 GDAL_retile 平铺卫星图像?
- android - 在 Android 中平滑滚动到自定义视图
- django - 如何在基于类的视图中使用 Django Rest 框架中的多个查找字段?
- azure-cosmosdb - Cosmos db 查询以获取数组项不为空的数据
- string - powerBI dax中字符串显示的未知大小列表
- clickhouse - 在 clickhouse 错误集群上创建表
- javascript - FbPlayableAd.onCTAClick() 尚未激活。点击 CTA 确保成功原生重定向到应用商店