首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在矩阵Matlab之间执行减法。航空航天

如何在矩阵Matlab之间执行减法。航空航天
EN

Stack Overflow用户
提问于 2022-11-05 11:34:42
回答 1查看 47关注 0票数 0

嗨,我需要在matlab中执行矩阵和行向量之间的减法。我正在从事一个大学项目,在这个项目中,我们假设飞机爆炸导致碎片的产生。为了保持动量,爆炸后的动量必须保持不变。由于我产生的碎片和它的速度随机递增,在动量上有一个错误,我试图消除它。我得到的结果接近于零。但是对于物理来说,它必须是零。我想我在矩阵和向量之间的运算中做错了一些步骤。

代码语言:javascript
复制
Mv=10000; 
V_0 = 200*.3048; 

N=1000
D=rand(N,1); 
somma=sum(D); 
m_i=(D/somma)*Mv; %mass of debris
ver=sum(m_i); 

vx_i = randn(N,1);
vy_i = randn(N,1); 
vz_i= randn(N,1);

DeltaV_iStar= [vx_i,vy_i,vz_i]; % i-esima velocity matrix 



DeltaQ_err=zeros(1,3);
DeltaQ=zeros(N,3); %inizializzo matrice 
for k=1:N
  DeltaQ(k,:)=(m_i(k)*DeltaV_iStar(k,:));  
  DeltaQ_err=DeltaQ_err+DeltaQ(k,:);
end
DeltaQ_err % momentun 


DeltaV_err = DeltaQ_err/Mv ; % errore da togliere agli incrementi iniziali

**DeltaV_c(:,3) = DeltaV_iStar(:,3) - DeltaV_err(1);** %i-esima matrix velocity which has been corrected

%% Now i do the same thing but with the correct value of velocity to verify that the momentum is zero

DeltaQ_err2=zeros(1,3);
DeltaQ=zeros(N,3); %inizializzo matrice 
for k=1:N
  DeltaQ(k,:)=(m_i(k)*DeltaV_c(k,:));  
  DeltaQ_err2=DeltaQ_err2+DeltaQ(k,:);
end
DeltaQ_err2 % momentum that must be zero
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-06 00:59:01

在矩阵减法中只有condtion,尺寸必须匹配。假设a(n,m)和b(n,m),那么您可以直接用matlab编写,例如: and;您将得到结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74327340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档